“for(;;)”比“while(TRUE)”快吗?如果没有,为什么人们会使用它?for (;;) {
//Something to be done repeatedly}我已经看到这种东西使用了很多,但我觉得它很奇怪......说这个while(true)或者某些东西不是更清楚吗?我猜这(因为许多程序员采用神秘的代码的原因)这是一个微小的利润更快?为什么,它真的值得吗?如果是这样,为什么不这样定义它:#define while(true) for(;;)另请参见:哪个更快:while(1)或while(2)?
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
我更喜欢for(;;)
两个原因。
一个是一些编译器产生警告while(true)
(类似“循环条件不变”)。避免警告总是一件好事。
另一个是我认为for(;;)
更清晰,更有说服力。我想要一个无限循环。它的字面有没有条件,这取决于什么。我只是想让它永远持续下去,直到我做一些事情来突破它。
然而while(true)
,嗯,什么是真的与任何事情有关?我对循环不感兴趣,直到true变为false,这就是这个形式的字面意思(循环,而true为真)。我只是想循环。
不,绝对没有性能差异。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
因为丹尼斯里奇
我开始使用,
for (;;)
因为这就是Dennis Ritchie在K&R中所做的事情,当我学习一门新语言时,我总是试图模仿聪明人。这是惯用的C / C ++。如果您计划在C / C ++空间做很多事情,那么从长远来看,它可能会更好地适应它。
你
#define
将无法工作,因为#define'd必须看起来像一个C标识符。所有现代编译器都将为这两个构造生成相同的代码。
- 3 回答
- 0 关注
- 957 浏览
添加回答
举报
0/150
提交
取消