C+函數參數的求值順序如果我們有三個函數(foo、bar和baz)是這樣組成的.foo(bar(), baz())C+標準是否保證在Baz之前對BAR進行評估?
3 回答
拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
在不限制表達式計算順序的情況下,可以生成更好的代碼。
int x = f(2) + g(3); // undefined whether f() or g() is called first
叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
參數的計算順序未指定。參數表達式計算的所有副作用在輸入函數之前生效。
bar()baz()bar()baz()foo.
除非已注明(例如特別規則) &&和 ||],未具體說明單個運算符操作數的計算順序和單個表達式的子表達式以及副作用發生的順序。
bar()baz()foo(bar() + baz())
- 3 回答
- 0 關注
- 692 瀏覽
添加回答
舉報
0/150
提交
取消
