轉: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相對於來講更加簡潔明瞭。循環