C++ 为什么-wParenthes没有';t为if(int x=someFunc())发出警告?
在使用-wparenthesis编译时,这将给出一个警告,这是可以理解的C++ 为什么-wParenthes没有';t为if(int x=someFunc())发出警告?,c++,if-statement,expression,declaration,g++4.9,C++,If Statement,Expression,Declaration,G++4.9,在使用-wparenthesis编译时,这将给出一个警告,这是可以理解的 if (myVar= myFunct(param1)) { // do some stuff } 但当我们在if块中声明变量时,编译器不会给出警告。为什么? if (int myVar= myFunct(param1)) { // do some stuff } g++(GCC)4.8.5您不能将声明括在括号内。因此,在声明周围使用附加括号会产生错误 对于第一个if语句,则使用了一个带有赋值运算符的
if (myVar= myFunct(param1)) {
// do some stuff
}
但当我们在if块中声明变量时,编译器不会给出警告。为什么?
if (int myVar= myFunct(param1)) {
// do some stuff
}
g++(GCC)4.8.5您不能将声明括在括号内。因此,在声明周围使用附加括号会产生错误 对于第一个if语句,则使用了一个带有赋值运算符的表达式。因此,编译器会警告是否有意使用赋值 在第二种情况下,有一个带有初始值设定项的声明。没有作业。条件的值由初始化后声明变量的值是否等于零来确定