c语言中void delay(unscnged int i){unsigned int j.k for(k=0;k<i;k++); for(j=0;j<1000

兄弟姐妹们在线求帮请教下,c语言中void delay(unscnged int i){unsigned int j.k for(k=0;k
最新回答
软喵酱メ

2024-09-20 12:06:17

延时,让程序运行要消耗时间,这样达到延时效果
追问
能具体的讲解一下吗,谢谢
追答
每行代码运行都要消耗多少个机器周期(不同硬件不同),然后这里进行了i * 1000个循环,就消耗了i*1000*周期时间,就等于消耗的时间,就是你要的延时时间。
绝尘映雪

2024-09-20 05:06:50

从函数名称来看,这是个延时程序,目的是让cpu等待一段时间。
函数中有两个循环,一个是k循环,做i次加法,一个是j循环固定做1000次加法,所以延时的计算是i+1000次加法时间。
普通延时程序循环是嵌套的,也就是写成:for ( k=0;k<i;k++ ) for ( j=0;j<1000;j++ );这样会延时i*1000次加法时间。这样对于高速cpu可以取得较长时间的延时,比较灵活。
具体加法时间需要参看该cpu运算指令的延时。另外程序循环也消耗一定时间,这种延时需要实际运行中测试效果后给出一个大致的i来实现不精确的延时。