inline 关键字
作用:替代C中表达式形式的宏定义。
表达式形式的宏定义一例:#define ExpressionName(Var1,Var2) (Var1+Var2)*(Var1-Var2)。它只是预编译器上符号表的简单替换,不能进行参数有效性检测及使用C++类的成员访问控制。
inline 推出目的:为了取代这种表达式形式的宏定义,消除它的缺点,同时又很好地继承它的优点。inline代码放入预编译器符号表中,高效;它是个真正的函数,调用时有严格的参数检测;它也可作为类的成员函数。
inline 函数:内联函数
形式:inline void fun(int a,int b){}
原理:在调用它的函数中直接嵌入被调用inline函数的代码。
优势:一般情况下,高效。但inline函数过长,反而增加调用函数的容量。因为它会生成一份独立的拷贝。
默认情况:在类定义中的成员函数,不在函数前加inline,也默认为内联函数。意味着:每个对象都有该函数一份独立的拷贝。
特点:1、它是实现的函数。用于函数定义,当然在这个前提下,你在声明中加inline没有任何影响。但没在定义中使用关键字inline,却在声明中加了 ,会发生问题。
2、不合格的inline,会被编译器拒绝内联。比如在一些内嵌函数中包含有循环或是这个函数体太大了,那么即使这个函数声明为inline,编译器也将拒绝这个函数的嵌入。