C++中的内联函数
2019-01-19 本文已影响0人
飘曳的舟
为了解决一些频繁调用的小函数大量消耗栈空间的问题,引入inline关键字 表示为内联函数
栈空间主要存放的是函数体内的局部变量
image.png
上图中,使用内联函数,就可以将dbtest(i) 直接替换为函数内部的代码,避免反复调用
内联函数必须是简单的函数,不能包含循环 switch 不能包含递归
声明内联只是一个建议,真正是否内联还是看编译器。
建议最好将内联函数放在头文件中
定义在类内的成员函数缺省的具备inline的属性,定义在类外的话需要显性的注明是inline的才可以使用内联函数
内联函数主要是用来修饰实现的,而不是声明部分。
内联不能滥用,有两种情况不适合使用内联函数:
- 函数过长,使用内联函数会造成代码变长,消耗更多内存。
- 函数体包含循环,使得执行函数的时间远高于调用函数的时间。
一句话:如果内联函数不能够增强性能,则不要使用它