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,函数,int,内联,inline From: https://www.cnblogs.com/codemagiciant/p/16607129.html