Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么-wParenthes没有';t为if(int x=someFunc())发出警告?_C++_If Statement_Expression_Declaration_G++4.9 - Fatal编程技术网

C++ 为什么-wParenthes没有';t为if(int x=someFunc())发出警告?

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语句,则使用了一个带有赋值运算符的

在使用-wparenthesis编译时,这将给出一个警告,这是可以理解的

if (myVar= myFunct(param1)) {
     // do some stuff
}
但当我们在if块中声明变量时,编译器不会给出警告。为什么?

if (int myVar= myFunct(param1)) {
     // do some stuff
}

g++(GCC)4.8.5

您不能将声明括在括号内。因此,在声明周围使用附加括号会产生错误

对于第一个if语句,则使用了一个带有赋值运算符的表达式。因此,编译器会警告是否有意使用赋值

在第二种情况下,有一个带有初始值设定项的声明。没有作业。条件的值由初始化后声明变量的值是否等于零来确定