1. 程式人生 > >for(;;)和while(true)有啥區別?

for(;;)和while(true)有啥區別?

java中,沒有任何區別,因為都被優化成了goto。

https://img3.mukewang.com/5b4556530001625609830316.jpg

在C中,while(true)在編譯後:

mov eax,1  
test eax,eax 
je foo+23h
jmp foo+18h

for(;;)在編譯後:

mp foo+23h

這裡的區別就非常明顯了,for(;;)在c語言中指令較少,也能夠節省記憶體,沒有判斷跳轉,是比while(true)更好的無限迴圈。

參考網址:https://www.imooc.com/article/details/id/43358