【轉(zhuǎn)】for(;;)和while(true)的區(qū)別

【轉(zhuǎn)自】for(;;)和while(true)的區(qū)別 - ashqal的專欄 - CSDN博客

一直知道for(;;)和while(true)都是無(wú)限循環(huán),今天搜了下原理。

while VS? for

在編程中,我們常常需要用到無(wú)限循環(huán),常用的兩種方法是while (1) 和 for (;;)。這兩種方法效果完全一樣,但那一種更好呢?讓我們看看它們編譯后的代碼:

編譯前? ? ? ? ? ? ? ? 編譯后

while (1);? ? ? ? ? ? mov eax,1

? ? ? ? ? ? ? ? ? ? ? ? ? test eax,eax

? ? ? ? ? ? ? ? ? ? ? ? ? je foo+23h

? ? ? ? ? ? ? ? ? ? ? ? ? jmp foo+18h

編譯前? ? ? ? ? ? ? ? ? 編譯后

for (;;);? ? ? ? ? jmp foo+23h

一目了然,for (;;)指令少,不占用寄存器,而且沒有判斷跳轉(zhuǎn),比while (1)好。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容