为什么缺少名称的函数调用仍然可以编译?
Why does a function call missing its name still compile?
一位开发人员在复制和粘贴类似类型的代码时犯了一个错误,而不是
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 不会。奇怪的是,Code Analysis 和 Clang Power Tools 都没有显示这个警告。
谢谢。
Why does this line of code compile?
因为该表达式在语法上是正确的
give no warning and what is this line of coding doing?
这取决于您为其设置的编译器和警告级别。如果表达式不执行任何操作,一些编译器会警告您。例如带有 -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?
一位开发人员在复制和粘贴类似类型的代码时犯了一个错误,而不是
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 不会。奇怪的是,Code Analysis 和 Clang Power Tools 都没有显示这个警告。
谢谢。
Why does this line of code compile?
因为该表达式在语法上是正确的
give no warning and what is this line of coding doing?
这取决于您为其设置的编译器和警告级别。如果表达式不执行任何操作,一些编译器会警告您。例如带有 -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?