C++函数参数调用顺序和调用规则的问题。。
上代码:
#include<iostream>
using namespace std;
int input(int &a)
{
cout<<"input"<<endl;
cin>>a;
return a;
}
void output(int a,int b)
{
cout<<a<<endl;
cout<<b<<endl;
}
int main()
{ int a;
output(input(a),input(a)); //难点在这里,主要是函数的调用过程,请详细解释之。
}
现在主要问题就是:当运行程序时,假设输入1,2.输出则会是2,1.
如果是因为stdcall,请解释清楚stdcall的作用,如果是因为堆栈,也请解释清楚。谢谢
[解决办法]
C和C++都是从右往左来的,所以是右边的先开始咯。
[解决办法]
不确定!
http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?22506
原因在链接中.
[解决办法]
http://blog.163.com/redhumor%40126/blog/static/19554784201154111444882/
[解决办法]
楼主结贴吧。不要浪费生命折腾C、C++明确规定的未定义行为。