/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 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性>C/C++>Optimization 屬性頁。
修改內嵌函 式擴充 屬性。
Inline 函式擴充屬性中無法使用 /Ob3 選項。 若要設定 /Ob3:
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
在 [其他選項] 中輸入 /Ob3。