1.我夸张点说吧,如果执行一条语句i=0; cpu需要用时1s,那么你需要系统延时10s时,循环执行i = 0 10遍就可以了。你后面的代码自然就10s后再执行了。 CPU执行每个代码都是有耗时的只是很短。
2.观察这个延时程序你可以发现,总循环次数是ms*110次,就像上面说的如果循环一次耗时1毫秒,如果你想达到你延时某段时长的目的,只能由传入的ms决定了。ms越大延时越久。
3.关于这段代码,其中的 for(j=110;j--;j>0); 运行时正常的,但是部分就没有意义了。要么改成
for(j=110;j--;);,或者和前面的代码一致改为 for(j=110;j>0;j--);
后面for循环判断语句j--无法跳出,i = ms,就是把调用函数时传过来的参数赋给i。换句话说,i就 等于你调用这个函数传来的参数。
(unsigned int k){unsigned int i,j;for(i=0;i<k;i++)for(j=0;j<00;j++);}//延时函数main(){unsigned char i;unsigned char temp;unsigned char a,b;void delay(void)//延时s{unsigned char m,n,s;for(m=0;m>0;m--)