【发布时间】:2011-02-06 08:42:42
【问题描述】:
for (;;) {
//Something to be done repeatedly
}
我见过这种东西用的很多,但我觉得它很奇怪......
说while(true) 或类似的东西不是更清楚吗?
我猜(这也是许多程序员求助于神秘代码的原因)这是一个很小的差距?
为什么,它真的值得吗?如果是这样,为什么不这样定义:
#define while(true) for(;;)
另见:Which is faster: while(1) or while(2)?
【问题讨论】:
-
什么是
TRUE??? -
@Steven Sudit:
TRUE与 C 有什么关系? C99 中真正布尔结果的标准宏仍然是true。TRUE是从哪里来的? -
那个宏不起作用,
#define EVER ;;虽然已经在 IOCCC 中使用了.. :) -
不是
#define while(TRUE)的宏声明了一个宏,它接受一个从未使用过的名为TRUE的参数,因此将程序中的每个while 循环都变成了无限循环?跨度> -
@Steven Sudit:不。没有“VS 6.0 中的标准宏”。宏
TRUE来自与 Windows API 关联的头文件。它与 VS 6.0 没有任何关系。而且,正如我之前所说,它与 C 或 C++ 无关。在 C++ 中,“真正的”文字只是true(在 VS 6.0 中也是如此),在 C89/90 中根本没有这样的东西,而在 C99 中它是宏true。这适用于所有 C/C++ 编译器。
标签: c++ c optimization readability infinite-loop