共用方式為


/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++>Optimization 屬性頁。

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

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

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

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

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

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

另請參閱

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