/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++ > 優化 ] 屬性頁面。
修改內嵌函 式擴充 屬性。
Inline 函式擴充 屬性中無法使用 /Ob3 選項。 若要設定 /Ob3 :
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
在 [其他選項 ] 中 輸入 /Ob3 。
若要以程式方式設定這個編譯器選項
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應