C语言代码的解释 void delay (int x) { int y=0; for(x;x>0;x--) for(y=0;y<400;y++) 有什么作用?

有什么作用?为什么有这样的作用?

void 表示函数无返回值
delay (int x): delay函数名,int x表示函数带一个整型参数x。
int y=0; 声明一个整型变量y。
for(x;x>0;x--) for循环语句当参数传入的x值在大于0的情况下x自减,直到x等于零的时候退出该循环。
for(y=0;y<400;y++) 前面声明的整型变量y在这里做for循环,y的初值是0,在y小于400的情况下y自增,直到y=400的时候跳出循环。
这个函数 要在被调用的时候才会起作用 但是这个函数根本就没有申明作用就是在这里做两条for循环语句,但是可以稍起延时作用但是这点时间对于计算机来说是微不足道的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-19
利用x的值来决定执行的时间长短,x越大,执行这段操作的时间越长,如果for循环里是空操作,就出现时间差。
第2个回答  2011-09-19
是一个空循环 ,循环次数400*x次
作用就是耗时间
第3个回答  2011-09-19
这个函数的作用是 延时,就是中间停留某一段时间,再接着执行。

之所以,有这种功能,就是程序执行语句是需要时间的,这个函数里面有一个空的双重循环,执行起来,需要一段时间。这个时间,就是我们需要延后的时间。
第4个回答  2011-09-19
这个程序我真的看不出它有什么意义,不知道你在什么地方找到的。也许真像下面这位说的:利用x来决定运行时间。如果两个循环是并列的,那么不同的x对应的时间差会小一点;如果是嵌套的的,这种时间差会更大。难道是用来计时的?不知道。看看环境才好说。也有可能是让初学者理解循环的概念,这样的话,这个程序是很简单的啊
第5个回答  2011-09-19
用来延迟一段时间,故意耗费cpu的时间,达到一定的延时效果,用来实现比如动画timer之类的功能,不过如果不是实在没有办法,不建议使用,这种常见于早期dos编程时时钟中断不够精确的时候用来做精确等待的。现在可以用winapi实现了

...void delay (int x) { int y=0; for(x;x>0;x--) for(y=0;y<400...
void 表示函数无返回值 delay (int x): delay函数名,int x表示函数带一个整型参数x。int y=0; 声明一个整型变量y。for(x;x>0;x--) for循环语句当参数传入的x值在大于0的情况下x自减,直到x等于零的时候退出该循环。for(y=0;y<400;y++) 前面声明的整型变量y在这里做for循环,y的...

求一道单片机延时程序(C语言)例题详细解释。例如要让P1_0灯隔1秒或者0...
void delay_ms(int time){ int x,y;for(x=110;x>0;x--)for(y=time;y>0;y--);} 然后到主程序:main(){ while(1){ 先让灯亮;delay(500);再让灯灭;delay(500);} } 这样就OK了,至于灯亮和灯灭 要看你是共阴还是共阳了 相信这个是很容易处理的。

void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0...
方法里面定义了x y都是uint类型 for循环x从z开始,如果大于0,x自减1,for循环y从110开始,如果大于0,y自减1 这两个循环是嵌套的 当第一个循环运行一次的时候,下面那个循环会运行110次

void delay(uint z) {uint x,y; for(x=z;x>0;x--) for(y=110;y>0...
void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} 如果写在主程序后面 那么要在前面加上一句 void delay(uint z) ;

单片机c语言delay函数for语句
这是一个双重嵌套循环写法, 外面的循环从0开始递增 ,循环500下, 里面一个循环从0开始递增,循环121下, i和j是自定义的变量, 和数学中设定x,y,z 一样, 但同一函数内不可定义两个名称一样的变量,编译器会报错, 取值范围不一样是根据你的业务需要定的, {;}这个分号为什么写在这里我不大清楚,我...

void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0...
每个机器运行速度不一样,延时几秒应该用Sleep函数。

51单片机用c语言怎么写延时函数?
我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环 void delay(int i){ int x,y;for(x=i;x>0;x--){ for(y=120;y>0;y--)} } 参数 i 代表该函数延时多少ms ...

C语言中 delay 函数如何运用?
2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。\/\/ 定义一个延时xms毫秒的延时函数void delay(unsigned int xms) \/\/ xms代表需要延时的毫秒数{ unsigned int x,y; for(x=xms;x>0;x--) for(y=110;y>0;y--);} ...

void delay(uint z) { uint x, y; for(x=z;x>0;x
第一行,定义一个无类型函数delay,获取变量z的值,第二行 ,定义两个变量,第三行,for循环,初值x=z,当x大于0时,成立,x自减。第四行,同第三行。。。

for(x=xms;x>0;x--) for(y=110;y>0;y--); 延时多久?
实际仿真结果:delay(6) 延迟了9.5ms delay(20) 延迟了31.6ms 所以你可以估算一下这个函数的实际延迟时间,大约是标称的1.58倍。如果想要更精确,就需要微调y的初值,不过这种延时说到底也是没法多精确的。

相似回答