for(;;)和while(true)的區別

轉:yq.aliyun.com/articles/63… samson_wangget

總結 for(;;) 比 while(true) 好 爲啥:以下(底層徹底不一樣)源碼

「死循環」有兩種寫法:for(;;)和while(true), 二者有啥區別,爲啥源碼中多數是for( ; ; )這種形式的,編譯

編譯前 編譯後 while (1); mov eax,1
test eax,eax je foo+23h jmp foo+18h 編譯前 編譯後 for (;;); jmp foo+23h    對比之下,for (;;)指令少,不佔用寄存器,並且沒有判斷跳轉,比while (1)好。test

也就是說二者在在宏觀上徹底同樣的邏輯,可是底層徹底不同,for相對於來講更加簡潔明瞭。循環

相關文章
相關標籤/搜索