常用解惑

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

总结 for(;;) 比 while(true) 好

1
2
3
4
5
6
7
8
 编译前              编译后 
while (1) mov eax,1
test eax,eax
je foo+23h
jmp foo+18h
//VS
编译前 编译后
for (;;) jmp foo+23h

对比之下,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。

也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明