杂记之C语言之无限循环

来源:互联网 发布:java注解怎么传入变量 编辑:程序博客网 时间:2024/04/28 20:52

嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

汇编代码 -- 在vc6.0中生成相应语句的汇编代码 DEBUG模式

 //死循环
 for (;;)
 {
  x = 1;
 }

 while (true)
 {
  x = 1;
 }

对应的汇编语句为:

 $L270:
; 对于for的真循环,没有判断语句,直接执行for循环体内数据
; x = 1

 mov DWORD PTR _x$[ebp], 1
; for循环执行
 jmp SHORT $L270


$L271:
; 对于while(true)循环,有3条汇编语句来判断
 mov eax, 1
 test eax, eax
 je SHORT $L274
; x = 1
 mov DWORD PTR _x$[ebp], 1
; 无条件跳转到判断语句开始位置
 jmp SHORT $L271

理解:for比while要快一些。for(;;)是直接跳转,while多了两条指令而已。

Loop:                                                                                                                                                                                                                                 -------                                      

goto Loop;      

运用了汇编思想,直接使用goto语句。