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 关注
- 650 浏览
添加回答
举报
0/150
提交
取消