C是否检查&&语句中的第二个布尔语句
Does C check the second boolean statement in an && statement
所以,比方说,我有这段代码:
int value = 256;
if( check_value_1(value) && check_value_2(value) )
{
// .. do stuff ..
}
如果函数check_value_1()
returns FALSE
会调用check_value_2()
吗?
简短的回答:没有。 c 使用短路计算,所以如果 &&
运算符的左手参数是 FALSE
,很明显整个表达式只能是 FALSE
,并且右边的论点甚至没有被评估。
If check_value_1(value)
returns FALSE
,if 语句的第二部分将被跳过并且不会执行。这被称为 short circuit evaluation。
不,C 进行了惰性计算并且 return FALSE。
了解更多信息 https://en.wikipedia.org/wiki/Short-circuit_evaluation
所以,比方说,我有这段代码:
int value = 256;
if( check_value_1(value) && check_value_2(value) )
{
// .. do stuff ..
}
如果函数check_value_1()
returns FALSE
会调用check_value_2()
吗?
简短的回答:没有。 c 使用短路计算,所以如果 &&
运算符的左手参数是 FALSE
,很明显整个表达式只能是 FALSE
,并且右边的论点甚至没有被评估。
If check_value_1(value)
returns FALSE
,if 语句的第二部分将被跳过并且不会执行。这被称为 short circuit evaluation。
不,C 进行了惰性计算并且 return FALSE。
了解更多信息 https://en.wikipedia.org/wiki/Short-circuit_evaluation