其他分享
首页 > 其他分享> > 03.内联函数(了解)

03.内联函数(了解)

作者:互联网

1.宏函数的缺陷

#define ADD(x,y) x+y
//在普通函数前面加上inline是向编译器申请成为内联函数
//注意:加inline可能成为内联函数,可能不成为内联函数
inline int Add(int x, int y)
{
	return x + y;
}

void test()
{
	//10+20*2
	int ref = ADD(10, 20) * 2;
	cout << "ref=" << ref << endl;

	int ref2 = Add(10, 20) * 2;
	cout << "ref2=" << ref2 << endl;
}

#define COMAPD(x,y) ((x)<(y)?(x):(y))
inline int func(int x, int y)
{
	return x < y ? x : y;
}
void test02()
{
	int a = 1;
	int b = 3;
	//                        ((++a)<(b)?(++a):(b))      
	//cout << "COMAPD(x,y)=" << COMAPD(++a, b) << endl;//3
	cout << "func=" << func(++a, b) << endl;//2
}

2.什么情况不会成为内联函数

​ 1.存在过多的条件判断语句

​ 2.函数体过大

​ 3.对函数进行取址操作

​ 4.存在任何形式的循环语句

3.内联函数的好处

​ 1.有宏函数的效率,没有宏函数的缺点

​ 2.类的成员函数默认加上inline

4.在普通函数前面加上inline是申请成为内联函数

标签:03,20,函数,10,int,内联,inline
来源: https://www.cnblogs.com/codemagiciant/p/16607129.html