0

J.1の不特定の動作でSO/IEC 9899:201xを見てきました。

"The order in which subexpressions are evaluated and the order in which side effects
take place, except as specified for the function-call (), &&, ||, ?:, and comma
operators (6.5)."

これは、

func1() + func2();

func2()は、func1()の前、またはfunc1()の間に実行される場合がありますか?

4

2 に答える 2

4

現在の標準 (ISO/IEC 9899:1999) では、関数呼び出しの間にシーケンス ポイントがありますが、オペランドの評価の順序が+指定されていないためfunc1、前後に呼び出すことができますfunc2が、関数呼び出しが重複したり、インターリーブされたりしてはなりません。とりあえず。

これは、 と のそれぞれfunc1func2、必要に応じて共有データとやり取りできることを意味します。

于 2009-11-16T23:20:13.610 に答える
1

途中ではありませんが、確かに、1 の次に 2 または 2 の次に 1 のいずれかです。

于 2009-11-16T23:19:04.113 に答える