转: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相对于来讲更加简洁明了。循环