-1

编译时使用 -括号,这将给出警告,这是可以理解的

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

但是当我们在 if 块中声明变量时,编译器不会给出警告。为什么?

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

g++(GCC) 4.8.5

4

1 回答 1

0

您不得将声明括在括号中。因此,在声明周围使用额外的括号会产生错误。

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

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

于 2020-01-17T04:34:03.463 回答