内联函数是一种提高代码效率的技术,用适度的代码空间膨胀,来换取较高的执行速度。
内联函数与预处理宏有相同之处,在每一处调用内联函数的地方,编译器将展开内联函数,将代码直接嵌入到调用处,从而节省了函数调用、参数入栈和返回值的处理。
内联函数是使用频繁调用、代码行数很短的小函数,且代码中,不允许有while、for循环结构,以及递归处理。
inline 函数的两种方式:
先看代码:
#include <stdio.h>
class A
{
int i;
public:
A(int i_) {i = i_;}
void print();
};
inline void A::print()
{
printf("i 的值为 :%d\n",i);
}
int main()
{
A a(3);
a.print();
return 0;
}
第一种方式:类A的构造函数直接在类的声明众写出代码,此时不必用关键字inline做说明,就可以被编译器视作为inline函数编译;
第二种方式: 类A的print函数在定义代码时,用关键字inline作说明;