C++内联函数
内联函数的作用
使用inline修饰函数的声明或者实现,可以使其变成内联函数,建议我们在声明和实现都写上inline
内联函数的特点
编译器会将函数的调用,直接展开为函数体的代码,可以减少函数调用的堆栈开销,但是会增大代码的体积
使用内联函数的注意事项
尽量不要内联超过10行代码的函数
有些函数即使声明为inline,也不一定会被编译器内联,比如递归函数。
内联函数和宏的区别
虽然内联函数和宏都可以减少函数调用的堆栈开销,但是内联函数比宏多了语法检测和函数特性
example
对比这2种写法的异同
#define sum(x) (x+x)
inline int sum(int x) {
return x + x ;
}
int main(){
int a = 10;
cout << sum(a++) << endl;
return 0;
}
在输出结果的时候,使用inline 的函数输出20,使用宏输出了21,内联函数在某些时候相比宏是更加安全的。

浙公网安备 33010602011771号