2016-06-01 8 views
3

このifステートメントのbooleanの式の順序は固定ですか?if文のブール式の順序は固定ですか?

if(boolean_expression_1 || boolean_expression_2) { 

} 

boolean_expression_1常にboolean_expression_2前に評価されていますか? Cの評価の順序は標準ですか?

+1

[こちら](http://stackoverflow.com/questions/31437095/conditional-execution-based-on-short-circuit-logical-operation) –

答えて

5

はい。それは保証されています。それは"short circuit"評価と呼ばれています。 C11ドラフト、論理OR演算子6.5.14から

:ビット単位とは異なり

|オペレータ、||オペレータの保証 左から右への評価;第2オペランドが評価される場合、 オペランドの評価の間のシーケンスポイントが です。第1オペランドが0と等しくないと比較すると、第2の オペランドは評価されません。

(強調鉱山)。

関連する問題