C++ inline函数的一点理解(参数传递和函数调用)

#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;

猜你喜欢

转载自blog.csdn.net/m0_37561165/article/details/81235808
今日推荐