int main()
{
int var = 0;; // Typo which compiles just fine
}
发布于 2009-05-05 12:04:43
这就是C和C++表达NOP的方式。
发布于 2009-05-05 12:01:46
如果定义了NDEBUG
,assert(foo == bar);
如何才能编译为空呢?
发布于 2009-05-05 11:46:20
我不是语言设计师,但我给出的答案是“有何不可?”从语言设计的角度来看,人们希望规则(即语法)尽可能简单。
更不用说“空表达式”也有用处了。
for (i = 0;i< INSANE_NUMBER;i++);
将死掉-等待(不是一个很好的使用,但仍然是一个使用)。
编辑:正如在对这个答案的评论中指出的那样,任何称职的编译器可能都不会忙于等待这个循环,并将其优化。然而,如果在for头本身中有更有用的东西(而不是i++),我见过(奇怪的)数据结构遍历,那么我想你仍然可以构造一个包含空体的循环(通过使用/滥用"for“结构)。
https://stackoverflow.com/questions/824512
复制相似问题