3
このif
ステートメントのboolean
の式の順序は固定ですか?if文のブール式の順序は固定ですか?
if(boolean_expression_1 || boolean_expression_2) {
}
はboolean_expression_1
常にboolean_expression_2
前に評価されていますか? C
の評価の順序は標準ですか?
このif
ステートメントのboolean
の式の順序は固定ですか?if文のブール式の順序は固定ですか?
if(boolean_expression_1 || boolean_expression_2) {
}
はboolean_expression_1
常にboolean_expression_2
前に評価されていますか? C
の評価の順序は標準ですか?
はい。それは保証されています。それは"short circuit"評価と呼ばれています。 C11ドラフト、論理OR演算子6.5.14から
:ビット単位とは異なり
|オペレータ、||オペレータの保証 左から右への評価;第2オペランドが評価される場合、 オペランドの評価の間のシーケンスポイントが です。第1オペランドが0と等しくないと比較すると、第2の オペランドは評価されません。
(強調鉱山)。
[こちら](http://stackoverflow.com/questions/31437095/conditional-execution-based-on-short-circuit-logical-operation) –