在
C++
类声明中直接编写类成员函数的代码,则则在编译时, 编译器把成员函数编译成员内联函数, 而在类外实现成员函数则会编译成普通函数。和普通函数不同的是
:
当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置,相当于宏的展开。 但是并不是直接等价于宏,内联函数还是具体函数的基本特征,而宏定义不具备函数特征。
内联函数好处: 加快程序运行速度。因为函数的调用, 都会涉及到当前环境参数入栈和出栈操作,而这些操作是需要占用时间的。内联函数缺点:由于每当代码调用到内联函数,就需要在调用处直接插入一段该函数的代码,所以程序的体积将增大。
内联函数好处: 加快程序运行速度。因为函数的调用, 都会涉及到当前环境参数入栈和出栈操作,而这些操作是需要占用时间的。内联函数缺点:由于每当代码调用到内联函数,就需要在调用处直接插入一段该函数的代码,所以程序的体积将增大。
内联函数定义时使用关键字 inline,语法形式如下:
inline 类型标识符 被调函数名(含类型说明的形参表);例如:
inline int function(int a,int b){ 函数体代码 }
但是注意, inline 关键字如果只出现在函数声明中,而没有使用来修饰函数定义, 这样是构不成内联的,如:
inline int function(int a,int b); //函数声明
int function(int a,int b){
函数体代码;
}