为解决代码中频繁调用小函数,消耗大量栈空间的问题,因而引入修饰符inline。
运行速度比常规函数稍快,但以代码“膨胀为代价”
函数内联,节约的是处理函数调用机制的时长。若函数执行时间短,函数内联的效益较高,反之效益降低
使用限制:
(1)不可递归使用
(2)函数体较大的时候不适合使用
(3)必须和函数定义放在一起才能成为内联,仅放在函数声明前不起任何作用
适用场景:
(1)类似:
inline double squre(x) {return x * x;}
这样一行就可实现的简短函数
(2)类的成员函数中用于成员变量存取的函数
(3)注:像这样直接在类中定义的成员函数
class A
{
public:void Foo(int x, int y){} //
}
自动会成为内联函数
但规范一些还是写成
// 头文件
class A
{
public:
void Foo(int x, int y);
}
// 定义文件
inline void A::Foo(int x, int y){}
参考资料
【1】https://www.runoob.com/w3cnote/cpp-inline-usage.html
【2】C++ Primer Plus