for(;;)和while(1)之间有什么区别?

abh*_*nav 4 c++ infinite-loop

可能重复:
"for(;;)"是否比"while(TRUE)"快?如果没有,为什么人们会使用它?

我想知道两者之间的区别for(;;)while(1)执行相同的功能有什么区别?编译速度会有什么不同吗?

sbi*_*sbi 9

与这些不同的是,许多编译器会警告while(true)("用作循环表达式的常量表达式"),而我所知道的并不是警告for(;;).

但是,他们应该生成相同的代码.


Eva*_*ran 8

完全没有功能差异,仅仅是品味问题.


fre*_*low 8

有了for,你可以这样做:

#define ever (; ;) // note the two happy faces? ;)

for ever { ... }   // endless loop
Run Code Online (Sandbox Code Playgroud)

这是不可能的while.

  • 那只是......*这样一个坏主意.言语无法形容. (6认同)
  • 创意+1,是的.但是,您可以写下:#define forever(1)while forever {...} (2认同)

And*_*ong 6

  • 除非break明确调用,否则两者都将导致无限循环 .
  • 我个人更喜欢(1),它更具可读性