関数パラメーターが評価される順序はC++では指定されていないことを知っています。以下を参照してください。
//単純な明白なもの。
callFunc(getA(),getB());
これと同等にすることができます:
int a = getA();
int b = getB();
callFunc(a,b);
Or this:
int b = getB();
int a = getA();
callFunc(a,b);
これは完璧です&私はほとんどのpplがこれを知っていると思います。
しかし、私はVC10、gcc 4.72を試しましたが、それらはすべてbを最初に(右から左に)評価します。つまり、bが最初にスタックフレームにプッシュされ、次にaがプッシュされます。
最初に評価するために、上記のコードをどのc ++コンパイラで作成する必要があるのか疑問に思っていますか?したがって、bの前にスタックにプッシュされます。
ありがとう