函数参数执行顺序问题
为什么C++函数执行的时候
参数是从右到左执行的?
我是学java的, 和java的顺序刚好相反
查个bug查了好久了
代码如下
- C/C++ code
#include "stdafx.h"#include "string"int add1(int i) { i++; printf("%d\n",i); return i;}int sum(int a,int b) { return a+b;}int _tmain(int argc, _TCHAR* argv[]){ sum(add1(10), add1(20)); getchar(); return 0;}输出
21
11
但是java是输出
11
21
[解决办法]
不确定
不同编译器 可以有不同的处理方式
[解决办法]
未定义行为,编译器可以自由处理。
你可以先把两个 add1() 的返回值按照你需要的顺序放到两个临时变量里,然后调用 sum()