関数呼び出しでのパラメータ評価の順序
C や C のようなプログラミング言語では、関数パラメータが評価される順序がトピックです議論の。この記事では、それぞれの言語標準で概説されている詳細について詳しく説明します。
C 言語
C99 および C11 標準によれば、関数パラメータを評価するための固定順序はありません。 。関数指定子、引数、およびその中の部分式の評価は不特定の順序で行われますが、実際の関数呼び出しの前にシーケンス ポイントがあります。これは、関数が本体に入る前にパラメータ評価による副作用が発生することを意味します。
C 言語
C では、言語標準により引数の評価順序が指定されています。関数呼び出しでは指定されていません。引数式の評価による副作用はすべて、関数に入る前に発生します。後置式と引数式リストの評価順序も指定されていません。
ハードウェア スタックの使用
C 規格も C 標準も、関数パラメータを渡すためのハードウェア スタック。パラメーターの受け渡し方法は、実装の詳細はコンパイラー設計者に委ねられます。ほとんどのアーキテクチャはスタックベースのアプローチを採用していますが、それは普遍的に実装されているわけではありません。
結論
C および C の関数パラメーターの評価順序は、実装は言語標準によって明示的に定義されていないためです。ただし、引数の評価による副作用は、両方の言語でそれぞれの関数が実行される前に発生することに注意することが重要です。
以上がC および C 関数呼び出しにおけるパラメータ評価の順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。