while(true)与for(;;)的区别


https://blog.csdn.net/u013346208/article/details/83988264

循环为什么不用While呢? for 和 while有什么区别呢?

对比了一下两者区别:
while
编译前:

while (true);  
1
编译后:

mov     eax,1 
test    eax,eax 
je      wmain+29h 
jmp     wmain+1Eh  
1
2
3
4
编译前:

   for(;;);
1
编译后:

jmp     wmain+29h       
1
由上面的结果可以看出
for编译器会优化成一条汇编指令,而while编译器会有很多条汇编指令

结果:for ( ; ; )指令少,不占用寄存器,而且没有判断、跳转
————————————————
版权声明:本文为CSDN博主「Jiang灬Hua」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013346208/article/details/83988264

 

for编译器会优化成一条汇编指令,而while编译器会有很多条汇编指令

结果:for ( ; ; )指令少,不占用寄存器,而且没有判断、跳转


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM