内联函数的引出
C++从C中继承的重要特征就是效率。若 C++的效率明显低于C的效率,估计很大一批程序员不会去使用C++了。
在C中我们常把一些频繁使用的计算写成宏,而不是函数,这样做的理由时为了提高执行效率,宏避免函数调用的开销,这些东西都在预处理阶段完成。
但是C++出现后,预处理会出现两个问题:
1.宏看起来像一个函数调用,但会有隐藏的一些难以发现的错误。
2.C++ 预处理不允许访问类成员,也就是说预处理宏不能做类的成员函数。
为保证预处理的效率又增加安全性,而且还能像一般函数那样可以在类里访问自如,C++引用内敛函数。
内联函数为了继承宏函数效率,没有函数调用的开销,又可以像普通函数进行参数,返回值类型的安全检查,又可以作为成员函数。
预处理的缺陷
#define ADD(x, y) x + y
inline int add(int x, int y)
{
return x + y;
}
void test01()
{
int ret1 = ADD(10, 20) *