美文网首页java
for(;;) 与 while(true)

for(;;) 与 while(true)

作者: Uning | 来源:发表于2019-08-23 15:07 被阅读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相对于来说更加简洁明了。

    原文地址 https://yq.aliyun.com/articles/637728

    相关文章

      网友评论

        本文标题:for(;;) 与 while(true)

        本文链接:https://www.haomeiwen.com/subject/srhtectx.html