循环for(;;) 和 while(true) 区别
总结: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)好。
也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。
https://www.jianshu.com/p/79c42efbaedf
» 本文链接:https://blog.apires.cn/archives/2106.html
» 转载请注明来源:Java地带
» 《循环for(;;) 和 while(true) 区别》
» 本文章为Java地带整理创作,欢迎转载!转载请注明本文地址,谢谢!
» 部分内容收集整理自网络,如有侵权请联系我删除!
» 订阅本站:https://blog.apires.cn/feed/
评论已关闭