C++ 为什么缺少名称的函数调用仍然可以编译?
一个开发人员在复制和粘贴类似类型的代码时犯了一个错误,而不是C++ 为什么缺少名称的函数调用仍然可以编译?,c++,clangpowertools,C++,Clangpowertools,一个开发人员在复制和粘贴类似类型的代码时犯了一个错误,而不是 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中尝试调试此代码时,调试器将跳过这一行代码 为什么这一行代码编译时不
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不显示此警告。奇怪的是,无论是代码分析还是叮当作响的电动工具都没有显示这种警告 谢谢 为什么这行代码要编译 因为这个表达式在语法上是正确的 没有警告,这行代码在做什么 这取决于编译器和对其设置的警告级别。若表达式不起任何作用,某些编译器会发出警告。例如,带有-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?
//这行代码做什么?
什么都不做。(x,y,z)代码>不是函数调用。括号用于其他内容。有趣的是,我认为这可能是本问题中未描述的用法:。相关:在Visual Studio 2015中生成所有警告时显示此警告,但级别4不显示此警告。奇怪的是,代码分析和Clang Power Tools都没有显示此警告。@DonaldHerman如果您在Clang Power Tools中遇到任何问题,您可以在此处打开一个问题: