一位开发人员在复制和粘贴类似类型的代码时犯了一个错误,而不是
int x = 100;
int y = 100;
int z = 100;
aFunction(x, y, z);
他们不小心打了
int x = 100;
int y = 100;
int z = 100;
(x, y, z); //What does this Line of Code do?
此代码已成功编译,没有发出任何警告。当试图在VS 2015中调试此代码时,调试器将跳过这行代码。
为什么这行代码编译时没有发出任何警告,这行代码在做什么?
更新:Visual Studio 2015中的所有警告都显示此警告,但级别4没有。奇怪的是,代码分析和Clang Power Tools都没有显示此警告。
谢谢。
为什么要编译这行代码?
因为该表达式在语法上是正确的
没有给出任何警告,这行代码在做什么?
这取决于编译器和您在其上设置的警告级别。有些编译器会在表达式不执行任何操作时发出警告。例如,带有-Wall标志的g++给出以下内容:
t.cpp:4:5: warning: left operand of comma operator has no effect [-Wunused-value]
(x, y, z); //What does this Line of Code do?
t.cpp:4:8: warning: right operand of comma operator has no effect [-Wunused-value]
(x, y, z); //What does this Line of Code do?