for(;;)和while(true)的区别
2016-12-22 14:40
232 查看
再看JDK源码的时候发现,“死循环”有两种写法: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 (1); mov eax,1
test eax,eax
je foo+23h
jmp foo+18h
编译前 编译后
for (;;); jmp foo+23h
一目了然,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。
也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。
相关文章推荐
- for(;;)和while(true)的区别
- for(;;) 和 while(true) 的区别
- for(;;)和while(true)的区别
- for(;;)和while(true)的区别
- 1.for(;;) 与 while(true) 的 区别
- while(true)与for(;;)的区别
- 【转】for(;;)和while(true)的区别
- for(;;)和while(true)的区别
- 关于for(;;)和while(1)/while(true)区别
- for(;;)和while(true)的区别
- javascript 循环语句 while、do-while、for-in、for用法区别
- while和for的区别
- C语言中:while与for循环的区别
- for循环和while循环区别。
- 循环for与while的区别
- 无限循环 while(1) 和 for(; ;) 有何区别?哪个更好?
- for(;;)与while(1)的区别
- shell编程中while与for的区别及效率比较
- for循环和while循环在使用continue时有所区别
- 08-for循环和while循环的小区别