论坛风格切换切换到宽版
  • 6010阅读
  • 13回复

请教这两种delay函数的区别 [复制链接]

上一主题 下一主题
离线BG4WBI
 
发帖
3677
只看楼主 倒序阅读 0楼 发表于: 2006-05-12
1
void delay (unsigned int value)
    {
    while (value!=0) value--;
    }

2
void mdelay (unsigned int delay)
{
unsigned int i ;
for(;delay>0;delay--)
{
for(i=0;i<50;i++)
{;}
}
}
离线BG4UVR
发帖
11288
只看该作者 1楼 发表于: 2006-05-12
给值相同的情况下,第二个延时要长大约50倍
离线wycx
发帖
1497
只看该作者 2楼 发表于: 2006-05-12
用户被禁言,该主题自动屏蔽!
离线BG7IGJ
发帖
1998
只看该作者 3楼 发表于: 2006-05-12
'
看一下反汇编的代码。。
'
c比汇编更好理解 虽然我很少用c,呵呵
离线BG4WBI
发帖
3677
只看该作者 4楼 发表于: 2006-05-13
'
给值相同的情况下,第二个延时要长大约50倍
'

如果值改成一样的话,这两种函数还有什么区别吗?
离线BG4WBI
发帖
3677
只看该作者 5楼 发表于: 2006-05-13
'
c比汇编更好理解 [表情] [表情]虽然我很少用c,呵呵
'

你是超级不怕麻烦的人
离线BG7IGJ
发帖
1998
只看该作者 6楼 发表于: 2006-05-13
'
你是超级不怕麻烦的人 [表情]
'
哈哈,单片机编程的话,我还是用汇编,arm的话,就用c了
其实用汇编编出来的程序,无论在运行的速度和汇译的效率都比c强,c只是在移植和开发效率(其实汇编的开发效率也很快)占优势
离线bd4ji
发帖
4532
只看该作者 7楼 发表于: 2006-05-13
'
其实用汇编编出来的程序,无论在运行的速度和汇译的效率都比c强
'
几千行的小程序熟练汇编的人写出来的效率确实比c高些,不熟练的话可能花了c语言几倍时间写出来的汇编执行效率还不如c高。百万行的程序除非那种变态高手否则用汇编简直是不可思议的事情。
离线BG4UVR
发帖
11288
只看该作者 8楼 发表于: 2006-05-13
汇编好比手工制造红旗。c好比流水线组装桑塔那。
离线BG4UVR
发帖
11288
只看该作者 9楼 发表于: 2007-09-20
'
汇编好比手工制造红旗。c好比流水线组装桑塔那。
'

晕!我竟然还说过这么牛的话
离线BD0AAI
发帖
3050
只看该作者 10楼 发表于: 2007-09-24
区别:
a:delay相同时 2的延时比1长50倍
b:1用while 循环, 2是用for循环
2还可以简化为:
2
void mdelay (unsigned int delay)
{
unsigned int i ;
for(;delay>0;delay--)
  for(i=0;i<50;i++);

}
离线VR2ZUY
发帖
1621
只看该作者 11楼 发表于: 2007-09-24
'
汇编好比手工制造红旗。c好比流水线组装桑塔那。
'
这个要看水平了。
水平不好的话,这红旗还不见得有桑塔纳好。 :d
离线chilingtao
发帖
456
只看该作者 12楼 发表于: 2007-09-28
学习.
离线wapman
发帖
546
只看该作者 13楼 发表于: 2007-10-23
51的话,我更愿意用汇编写。c总是担心效率不高