if语句中的布尔表达式的顺序是否已修复?

时间:2016-06-01 14:38:37

标签: c

boolean语句中的if个表达式的顺序是否已修复?

if(boolean_expression_1 || boolean_expression_2) {

}

boolean_expression_1之前始终评估boolean_expression_2吗?评估顺序是C中的标准吗?

1 个答案:

答案 0 :(得分:5)

是。它得到了保证。它被称为"short circuit"评估。

从C11草案, 6.5.14逻辑OR运算符

  

与按位|不同运算符, ||运营商保证   从左到右的评估;如果评估第二个操作数,则有   第一个和第二个的评估之间的序列点   操作数。如果第一个操作数比较不等于0,则第二个操作数   操作数未被评估。

(强调我的)。

相关问题