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()吗?

简短的回答:没有。 使用短路计算,所以如果 && 运算符的左手参数是 FALSE,很明显整个表达式只能是 FALSE,并且右边的论点甚至没有被评估。

If check_value_1(value) returns FALSE,if 语句的第二部分将被跳过并且不会执行。这被称为 short circuit evaluation

不,C 进行了惰性计算并且 return FALSE。

了解更多信息 https://en.wikipedia.org/wiki/Short-circuit_evaluation