啊,这位大侠,帮我解答我的问题哦

[复制链接]
查看11 | 回复1 | 2010-12-4 23:47:44 | 显示全部楼层 |阅读模式
/*延时程序,n:入口参数为,单位:2毫秒左右*/
void delay(uchar n)
{ uchar i;
while(n--)
for(i=0;i<200;i++);
}
可以再详细点吗,这个程序的运行,意思?

回复

使用道具 举报

千问 | 2010-12-4 23:47:44 | 显示全部楼层
呃……不知道你想问的问题是什么……为什么要用uchar呢,直接进行加减运算的一般是用int吧。void delay(unsigned int n) {
unsigned int i;
while(n--)
for(i=0;i<200;i++);}这个程序的延迟时间大概是200*n*4个指令周期。在for语句里面每执行一次至少有一次比较(1周期),一次inc或dec(1周期),还有一次跳转之类的指令(1或2或3周期),各个编译器编译后也不全相同。可以尝试在程序中给n赋上不同的值来进行判断究竟延迟了多长时间。 //////////////////////////////////////
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行