共用方式為


何時使用內嵌函式

內嵌函式用於小型功能時最為理想,例如存取私用資料成員。 這些一行或兩行的「存取子」函式主要用途是傳回有關物件的狀態資訊,而較短的函式容易受到函式呼叫的額外負荷影響。 比例上來說,較長的函式在呼叫/傳回序列中所花的時間較短,因此內嵌時的優勢較少。

範例

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、__inline、__forceinline