delay() { int j,k; for(j=0;j<500;j++); for(k=0;k<490;k++); } 是什么意思

如题所述

delay是函数名,意思为延迟,()空括号表示不需要传入参数。
函数体里面有两个循环,用j,k做控制循环的变量。第一个循环执行500次,第二个490次。也就是说进入这个函数,空转总共990次,这个空转的时间就是延迟。追问

第一个循环和第二个循环有什么区别呢

追答

本质上没区别,只是控制变量名称不一样。
直接
int j; for(j=0;j<990;j++);
延迟的时间应该是一样的

追问

#include
delay()
{
int j,k;
for(j=0;j<500;j++);
for(k=0;k<49;k++);
}
main()
{
ADCON1=0X06;
TRISA=0X00;
TRISB=0X00;
PORTB=0X00;
TRISE=0X00;
RE2=0;
RE1=0;
RE0=0;
RA1=1;
while(1)
{
RA5=1;
delay();
RA5=0;
delay();
}
}
如果改变J k会有什么变化呢

追答

这个一样啊,你如果写成
for(j=0;j<500;j++)//注意,第一个循环后面没有分号!
for(k=0;k<49;k++);
就是双重循环了,循环次数变成了500*49=24500

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-02
这个就是时间延迟函数,通过两次循环,一次490,一次500来达到延时效果。其中delay() 是aoto类型的函数,函数名为delay;j,k为循环变量。函数名你可以改为你想要的任意名字,但要符合命名原则。

...j,k; for(j=0;j<500;j++); for(k=0;k<490;k++); } 是什么意思_百度...
delay是函数名,意思为延迟,()空括号表示不需要传入参数。函数体里面有两个循环,用j,k做控制循环的变量。第一个循环执行500次,第二个490次。也就是说进入这个函数,空转总共990次,这个空转的时间就是延迟。

...int j.k for(k=0;k<i;k++); for(j=0;j<1000;j++);}什么意思...
延时,让程序运行要消耗时间,这样达到延时效果

请问下面的延时函数的for(j=0;j<0x900;j++); 是什么意思?
首先0x是十六进制的标识:0x900换算成十进制则为:16+16*16*9这么大的一个数字。外层循环time次,内层循环2320次。

...i) { uint x,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }_百度...
表示循环体内什么都不做。只把i从0加到148,耗费cpu一定的指令周期,相当于一个延时程序。

...i,j; for(i=0;i<500;i++) for(j=0;j<800;j++); }
这是典型的单片机上的 通过代码指令实现的延时函数。当运行库不支持sleep\/delay这些延时函数时候,就用这个代替。

...int t) { int i,j; for(i=0;i<t;i++) for(j=0;j<100;j++) ; }...
void delay1ms(int t){ int i,j;for(i=0;i<t;i++)for(j=0;j<100;j++) ;} 就是一个延时函数,t变量是一个延时变量。调整须要的延时时间,这个函数一般用于单片机开发调整显示输出时间比较多,不过要想精确延时,最好用汇编来做咯。

...{ uint i,j; for (j=0;j<ms;j++) for (i=0;i<120;i+
delay, 1个形参 ms, 变量类型 unit (无符号整型)。{ 函数体开始 uint i,j; 声明 无符号整型 变量 i,j for (j=0;j<ms;j++) -- j 循环 可以 延时 ms 个 i 循环,也就是 ms 毫秒.for (i=0;i<120,i++) do-something; -- i 循环 可以 延时 1 毫秒.} ...

...z) { uint i,j; for(i=0;i<z;i++) for(j=0;j<110;j++); } 这个延 ...
一、执行第一个for语句:1、让i=0 2、判断i<z。显然0<5。好吧,满足了for的条件,我们就得满足第一个for语句的要求(即为3、4两步)执行下一个for语句 3、让j=0 4、判断j<110。显然0<110。好吧,满足了第二个for的条件,我们满足for的要求,发现for没有任何要求,所以我们让j++吧,于是...

...int i;j for(i=0;i<2;i++) for(j=0;j<60000;j++)
现在的CPU太快,这样空循环12万秒杀,估计基本没有延迟

用C语言编写1ms延迟子程序,不明白for (j=0;j<120;j++),求助大大们
for (j=0;j<120;j++); \/\/计数120次,延迟1ms } 这是一个for循环嵌套,每执行一次第一个for语句,那么第二个for语句要执行120次 for (j=0;j<120;j++); 就是没执行一次第一个for循环,就令 j =0,再判断是否 j 满足循环条件(这里就是判断是否 j 小于120)如果满足就继续循环,如果...

相似回答
大家正在搜