0

可能重复:
“for(;;)”是否比“while (TRUE)”快?如果不是,人们为什么要使用它?

我想知道哪个无限循环更可取:

for(;;) {
    // Do some stuff
}

或者

#define TRUE 1

while(TRUE) {
    // Do some stuff
}

从性能的角度来看,它们之间有什么区别吗?

从编码标准的角度来看,什么更可取?

4

5 回答 5

4

从性能的角度来看,这并不重要。编译器会将两者优化为相同的汇编代码。从“编码标准”的角度来看, for(;;) 更简洁,这很好。虽然 while(TRUE) 更清晰一些,但 for(;;) 如此常见,以至于在这种情况下清晰并不是什么大问题(事实上,for(;;) 的普遍性可能使它比 while 版本更清晰)。

于 2012-11-01T11:18:05.477 回答
1

这是品味问题,尤其是使用的编码约定问题。最好在同一个项目中的任何地方都使用一种风格,或者在混合风格时使用相同的规则。许多 C++ 框架也提供永久宏,在我看来,在使用该框架的代码中应该优先使用它。生成的代码应该没有区别。

于 2012-11-01T11:19:45.117 回答
1

没有不同。while (true)对某些人来说可能看起来更明显。

于 2012-11-01T11:16:30.863 回答
1
于 2012-11-01T11:16:47.327 回答
-1

The difference between the two is not big. You usually use for when you know how many elements to traverse. You use while if instead a condition needs to be satisfied

于 2012-11-01T11:17:18.940 回答