そして、最初f(x)+(g(y))
に電話することを確認できますか?g(y)
多くの場合、式の順序は定義されていませんが、この場合、括弧は機能しますか?
質問する
404 次
3 に答える
24
括弧は、優先順位をオーバーライドするために存在します。評価の順序には影響しません。
于 2013-07-05T11:27:01.140 に答える
12
ほら、二行!
auto r = g(y);
f(x) + r;
これにより、2 つの関数呼び出しの間に非常に重要なシーケンス ポイントが導入されます。他の方法もあるかもしれませんが、この方法は単純明快です。括弧はシーケンスポイントを導入しないため、解決策ではないことに注意してください。
于 2013-07-05T11:27:47.210 に答える
2
いいえ。+
演算子が再定義されない限り、そのようなものは左から右に評価されます。演算子の優先順位に影響を与えることができたとしても、必ずしも同じ順序で評価されるf
とは限りません。の前に評価するg
必要がある場合は、いつでも次のことができます。f
g
auto resultOfF = f(x);
auto resultOfG = g(x);
resultOfF + resultOfG;
于 2013-07-05T11:28:40.637 に答える