c++ - 为什么编译器不会拒绝以加法运算符开头的行?

标签 c++ visual-c++

我只是在做一些重构,并为自己制造了一个错误:

int i = 2;
    + 7;
    + 4;

这是简化的;第 1 行和第 2 行末尾的额外分号并不是那么明显 - 至少对我来说 :)。

我不明白为什么编译器没有捕捉到它。 C++ 中是否有一些以加法运算符开头的有效操作?

最佳答案

没有要添加到加法运算符的东西只是意味着积极所以 +2; 只是意味着 (+2); 这就像只有一行 i ; 或类似的。它没有任何“错误”,但也不会发生任何事情。如果您在 *nix 下使用带有 -Wall 指定的 gcc 进行编译,您将收到错误 warning: statement has no effect 这通常是个好消息,因为它通常是您打算执行的声明的标志某些事情实际上没有按照预期去做。

关于c++ - 为什么编译器不会拒绝以加法运算符开头的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26495013/

相关文章:

C++ 和可枚举

c++ - 在所有错误情况下,我需要采取哪些操作来获取故障转储?

c++ - 如何使用 scons 和 Visual C++ 链接到使用静态库本身的静态库?

c++ - 无法打开包含文件 : 'dxgi1_2.h' : No such file or directory

c++ - 迭代器究竟是如何工作的? (多项选择)

c++ - 使用 strtok 在 C++ 中进行字符串操作

c++ - 你如何在 macOS 上使用 Valgrind/Helgrind?

c++ - 为什么 SDL 在 Mac 上比 Linux 上慢很多?

visual-c++ - 用于 GCC/G++ 的 VC++ #import 指令

c++ - _CrtSetAllocHook 从不显示文件名/行号