首页 > 其他 > 详细

for(;;)和while(true)的区别

时间:2020-01-10 18:58:03      阅读:55      评论:0      收藏:0      [点我收藏+]

总结 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相对于来说更加简洁明了。

for(;;)和while(true)的区别

原文:https://www.cnblogs.com/zhuyeshen/p/12177346.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!