何时使用内联函数

内联函数最适用于小型函数使用例如访问私有数据成员。主要目的这一或两行 “访问器”函数将返回有关对象的状态信息;短函数对开销非常敏感函数调用。较长的功能为比例地花费在序列并受益于内联调用/返回的少时间。

示例

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 在前面的示例中), 内联 通常保存开销:

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

  • 调用方的堆栈帧的保存

  • 新的堆栈帧设置

  • 返回值通信

  • 旧堆栈帧还原

  • Return

请参见

参考

内联, __inline, __forceinline