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