如下的延时函数中while(x--)是什么意思?有了解的吗?

void DelayMS(uint x)
{
uchar t; 
while(x--)//?
{
for(t=120;t>0;t--); 
}
}

哆啦的时光机
浏览 84回答 2
2回答

弑天下

估计你的振荡器(或晶振)的频率为 每120个周期1ms,所以内层循环for(t=120;t>0;t--);相当于 1ms然后外层循环 while(x--){ ... } 控制内层循环执行 x 次,所以达到的效果就是 delay x ms至于while(x--){ ... },这个 x 是本地变量(局部变量,形参,堆栈上的变量),它的初始值是你在调用该函数时实参拷贝给它的

慕尼黑8549860

x是调用者传递过来的参数,用于决定延时的大小。在这个程序中,通过while循环和for循环的嵌套实现空转来完成延时。x--就是给x的值减1.每次循环减1,直到x=0结束循环,也就是终止延时。
打开App,查看更多内容
随时随地看视频慕课网APP