#include <iostream>
using namespace std;
static inline int func(int a,int b){
return a+b;
}
int func1(int a,int b){
return a+b;
}
int main ()
{
int a=1;
int b=2;
int a1=1;
int b1=2;
int res=func(a+b,++a);
int res1=func1(a1+b1,++a1);
cout<<"res:"<<res<<endl;
cout<<"res1:"<<res1<<endl;
return 0;
}
参数传递在函数执行之前,所以++a先执行,然后是a+b。
整体大概是:
a自增;
a的值放到寄存器1(arg1);
a+b的值放到寄存器2(arg2);
函数返回值入栈;
-------------执行子函数
int b=arg1;
int a=arg2;
int c=a+b;
------------子函数执行结束
扫描二维码关注公众号,回复:
2645000 查看本文章
释放子函数中bac的栈空间;
c的值放到寄存器(arg3);
int res=arg3;