Don*_*man -2 c++ clangpowertools
开发人员正在复制并粘贴相似类型的代码,并在其中而不是代码中犯了错误
int x = 100;
int y = 100;
int z = 100;
aFunction(x, y, z);
Run Code Online (Sandbox Code Playgroud)
他们不小心打字了
int x = 100;
int y = 100;
int z = 100;
(x, y, z); //What does this Line of Code do?
Run Code Online (Sandbox Code Playgroud)
此代码已成功编译,并未发出警告.尝试在VS 2015中调试此代码时,调试器将跳过此行代码.
为什么这行代码编译并且没有发出警告,这行编码是做什么的?
更新: 在Visual Studio 2015中构建所有警告显示此警告,但级别4不显示.奇怪的是,Code Analysis和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?
Run Code Online (Sandbox Code Playgroud)