for(;;) 与 while(true) 的区别(转自论坛的回复)

for(;;)编译成汇编后是无条件转移,while(1)是要0和1进行一下比较的,所以从这个方向上看for(;;)是要比while(1)快的因为少了一个比较指令,但现在的编译器都是有一定的优化能力的,像while(1)这种会优化成和for(;;)一样的汇编代码。

 

while (1)
00D5138E  mov         eax,1 
00D51393  test        eax,eax 
00D51395  je          main+29h (0D51399h) 
00D51397  jmp         main+1Eh (0D5138Eh) 
 
for ( ; ;)
00D51399  jmp         main+29h (0D51399h) 

posted @ 2014-04-23 22:09  cruze_lee  阅读(207)  评论(0编辑  收藏  举报