何时使用内联函数

内联函数最适用于小函数使用,例如访问私有数据成员。 这些一行或两行代码的“访问器”函数的主要用途是返回有关对象的状态信息;短函数对函数调用的开销很敏感。 较长的函数在调用/返回序列方面花费的时间可成比例地减少,而从内联的获益也会减少。

示例

可按如下所示来优化在函数调用结果中引入的 Point 类。

// when_to_use_inline_functions.cpp
class Point
{
public:
    // Define "accessor" functions as
    //  reference types.
    unsigned& x();
    unsigned& y();
private:
    unsigned _x;
    unsigned _y;
};

inline unsigned& Point::x()
{
    return _x;
}
inline unsigned& Point::y()
{
    return _y;
}
int main()
{
}

假设操作坐标是此类客户端中相对常见的操作,则将两个访问器函数(前面示例中的 x 和 y)指定为“内联”通常将节省下列操作的开销:

  • 函数调用(包括参数传递和在堆栈上放置对象地址)

  • 保留调用者的堆栈帧

  • 设置新的堆栈帧

  • 返回值通信

  • 旧堆栈帧还原

  • 返回

请参见

参考

inline、__inline、__forceinline