1、内联函数的使用,几个注意点;与#define对比
- 在函数声明和定义前面加上inline ,而不是在调用的时候
- 是否成为内联函数看编译器是否同意, 比如使用的是递归调用函数,编译器不会将这个函数作为内联函数。
- 可以理解为将函数原型替换调用代码,但实际上又和define不同
#define cal2(a,b) a*b
inline int cal1(int a, int b)
{
return a* b;
}
int c = cal1(4 + 1, 9 + 1);
cout << " 内联函数 : " << c << endl;
int d = cal2(4 + 1, 9 + 1);
cout << " 宏定义 : " << d << endl;
- 可以看出,内联函数实际上还是一个传值调用,但是 宏定义确实只是 简单的替换而已。