3

重複の可能性:
関数パラメーターの評価順序

私が4つの引数を持つ関数を持っていると仮定します。どのパラメーターが最初に実行されると見なされるか、およびその理由。

,関数プロトタイプに使用される演算子の重要性を理解しようとしていました。ルールとして、それは最初に考慮される最後の変数ですか?

4

2 に答える 2

5

次のプロトタイプを持つ関数がある場合:

int function(int x, int y, int z);

そして、私たちはそれをそのように呼びます:

function( something_a(), something_b(), something_c() );

something_a、、something_bおよびの実行順序を推測することはできませんsomething_c

一方、コンマ演算子は次のように使用できます。

int main() {
    int x;
    something_a(), something_b();
    something_c();
}

この場合、それが、次に、そして最後にsomething_aと呼ばれることがわかります。something_bsomething_c

要約すると、関数呼び出しで見つかったコンマは、コンマ演算子ではありません。

于 2012-05-21T17:48:09.557 に答える
1
  1. 引数を区切る手段としてコンマが使用されます。カンマは演算子ではありません。

  2. 関数の引数の順序は、コンパイラとランタイムスタックの動作方法によって異なります。標準では、引数が評価される順序を決定するのはコンパイラーに任されているため、保持されている特定の順序に依存しないでください。

于 2012-05-21T17:50:40.900 に答える