式でのオペランド評価の順序
式を作成するときは、オペランドが評価される順序を理解することが重要です。これは、特に副作用が関係する場合、式の結果に影響を与える可能性があります。
C および C
C と C の両方で、オペランドの評価順序は次のとおりです。 未指定。これは、コンパイラが選択した任意の順序でオペランドを自由に評価できることを意味します。
たとえば、式 a b を考えてみましょう。 a が b より前に評価されるという保証はありません。コンパイラは、最初に b を評価し、次に a を評価する前にその結果を一時変数に保存することを選択する場合があります。
C の標準では、「関数の引数の評価順序は指定されていない」と明確に規定されており、通常の標準では、演算子、「個々の演算子のオペランドと個々の式の部分式 [...] の評価順序は指定されていません。」
C 11 以降
の文言for オペランドの評価順序は、C 11 以降のバージョンでわずかに変更されました。 2 番目のステートメントは、順序が不特定ではなく「順序なし」であることを示しています。ただし、これは本質的には同じ概念です。コンパイラは、オペランドを特定の順序で評価する必要はありません。
結論
C ではオペランドの評価順序が指定されていないことに注意することが重要です。 C.これは、特に副作用が関係する場合、式の結果に影響を与える可能性があります。式を作成するときは、特定の評価順序に依存しないようにするのが最善です。
以上がC および C ではオペランドの評価順序は保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。