共用方式為


/Ob (內嵌函式展開)

控制函式的內嵌展開。 根據預設,在優化時,擴充會在編譯器判斷所有函式時發生,通常稱為 自動內嵌

語法

/Ob { 0 | 1 | 2 | 3}

/Ob { 0 | 1 | 2}

引數

0
/Od 下的 預設值。 停用內嵌展開。

1
只允許擴充標示為內嵌 __inline 或__forceinline 的函式,或 是在 類別宣告中定義的 C++ 成員函式中。

2
/O1 /O2 下的 預設值。 允許編譯器展開未明確標示為無內嵌的任何函式。

3
此選項會指定比 /Ob2 更積極的內嵌,但有相同的限制。 從 Visual Studio 2019 開始,可以使用 /Ob3 選項。

備註

編譯器會將內嵌展開選項和關鍵字視為建議, 不保證任何函式都會內嵌展開。 您可以停用內嵌擴充,但即使使用 __forceinline 關鍵字,也無法強制編譯器內嵌特定函式。

若要將函式排除為內嵌擴充的候選項目,您可以使用 __declspec(noinline) 或以 #pragma auto_inline(off) #pragma auto_inline(on) 指示詞標示 的區域。 如需向編譯器提供內嵌提示的另一種方式資訊,請參閱 #pragma 內建 指示詞。

注意

從分析測試回合收集的資訊會覆寫因您指定 /Ob /Os /Ot 而生效的優化。 如需詳細資訊,請參閱特性指引最佳化

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [ 組態屬性 > C/C++ > 優化 ] 屬性頁面。

  3. 修改內嵌函 式擴充 屬性。

Inline 函式擴充 屬性中無法使用 /Ob3 選項。 若要設定 /Ob3

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [其他選項 ] 中 輸入 /Ob3

若要以程式方式設定這個編譯器選項

另請參閱

/O 選項 (最佳化程式碼)
MSVC 編譯器選項
MSVC 編譯器命令列語法