【发布时间】:2015-07-29 04:51:26
【问题描述】:
添加 true; / false; 显然是有效的 C++ 代码。它编译并运行得很好。
类似地,int;、void;、{}(no ())、1+1;、1 == 1; 甚至只是 1; 之类的语句也是如此……为什么? (我使用的是 Visual C++)
【问题讨论】:
-
因为他们没有理由不运行。但是,仅使用关键字或您提到的其他一些示例将无济于事。
-
我问的原因是因为这样的东西在 java 中不起作用,而且可能在大多数语言中都不起作用。
-
int;和void;无效。 -
任何后跟分号的表达式都是有效的语句。没有副作用的表达式作为语句有点毫无意义,但仍然有效。这占
true;、false;、1+1;、1==1;和1;。{}是一个恰好为空的复合语句 - 作为函数体或循环体很常见。 'int;'似乎无效,不应编译(gcc 拒绝它)。 -
@MattMcNabb 嗯,为什么我的编译器允许它:(
标签: c++ c++11 visual-c++ compilation