編輯與導覽 C++ 程式碼
本文概述了 C/C++ 擴充功能專有的程式碼編輯與導覽功能。如需 Visual Studio Code 一般編輯與導覽的詳細資訊,請參閱基本編輯與程式碼導覽。
編輯 C++ 程式碼
C/C++ 擴充功能提供的原始程式碼編輯功能,是用於編輯、格式化與理解程式碼庫的強大工具。
識別標頭檔
為了提供最佳的編輯體驗,C++ 擴充功能需要知道在哪裡可以找到程式碼中參考的每個標頭檔。預設情況下,擴充功能會搜尋目前的原始程式碼目錄、其子目錄以及某些平台特定的位置。如果找不到參考的標頭檔,#include 指令下方會顯示紅色波浪底線。
若要指定額外的 include 目錄:
- 選擇一個沒有參考的
#include路徑。 - 選擇出現的燈泡圖示,並選擇
Edit "includePath" setting,這會開啟 C/C++ 擴充功能的設定編輯器。 - 在 Include Path 區段下,您可以指定任何額外 include 目錄的路徑。

列出成員
當您輸入成員存取符號(. 或 ->)時,編輯器會顯示成員列表。當您輸入更多字母時,列表會即時篩選。

程式碼格式化
Visual Studio Code 的 C/C++ 擴充功能支援使用 clang-format 和 vc_format 進行原始程式碼格式化。這兩種格式化選項都包含在擴充功能中,並預設使用 clang-format。
您可以透過滑鼠右鍵選單中的 格式化文件 (Format Document)(⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I))來格式化整個檔案,或使用 格式化選取範圍 (Format Selection)(⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F))僅格式化目前選取的範圍。您也可以透過以下設定,根據輸入、儲存與貼上等使用者手勢觸發格式化:
editor.formatOnSave- 在儲存檔案時進行格式化。editor.formatOnType- 在您輸入時進行格式化(在輸入 ; 字元時觸發)。
如需深入了解格式化,請參閱格式化。
Clang-format
預設情況下,clang-format 風格設定為 file。這意味著如果您的工作區中找到 .clang-format 檔案,則會使用該檔案中指定的設定作為格式化參考。否則,格式化將基於 C_Cpp.clang_format_fallbackStyle 設定中所指定的預設風格。
目前,預設的格式化風格為 Visual Studio,這是 Visual Studio 預設程式碼格式化工具的近似值。它包含以下設定:
UseTab: (VS Code current setting)
IndentWidth: (VS Code current setting)
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 0
若要使用與擴充功能隨附版本不同的 clang-format 版本,請將 C_Cpp.clang_format_path 設定變更為已安裝 clang-format 二進位檔的路徑。
例如,在 Windows 平台上,請使用:
"C_Cpp.clang_format_path": "C:\\Program Files (x86)\\LLVM\\bin\\clang-format.exe"
vc_format
預設情況下,如果在要格式化的程式碼附近識別出包含相關設定的 .editorconfig 檔案,則會使用 Visual C++ 格式化引擎,而不是 clang-format。否則,請導覽至 C_Cpp.formatting 設定並將其設為 vc_format,以使用 Visual C++ 格式化引擎。
增強型語意色彩標示
當啟用 IntelliSense 時,Visual Studio Code C/C++ 擴充功能支援語意色彩標示。如需有關為類別、函式、變數等設定顏色的詳細資訊,請參閱增強型色彩標示。如需有關設定 IntelliSense 的詳細資訊,請參閱IntelliSense 設定。
快速資訊 (Quick Info)
您可以將滑鼠游標停在符號上,以查看其定義的行內檢視。

Doxygen 註解
Doxygen 是一個從原始程式碼產生文件的工具。當您使用註解標註程式碼時,Doxygen 會為這些函式產生文件。對於 Doxygen 註解,請輸入 /** 並按下 Enter 以產生 Doxygen 註解區塊。支援的 Doxygen 標籤包括:@brief、@tparam、@param、@return、@exception、@deprecated、@note、@attention 和 @pre。
Markdown 註解
預設情況下,C++ 擴充功能支援在您的編輯器中顯示部分 Markdown。此子集支援除了 _ 和 * 符號之外的所有 Markdown 註解。切換新的 Markdown in Comments 設定,以啟用所有 Markdown、保留此 Markdown 子集或停用 Markdown 支援。
導覽原始程式碼
原始程式碼導覽功能可以協助您更深入地了解程式碼庫。這些功能讓您可以快速搜尋程式碼中的符號、導覽至其定義,或尋找對它們的參考。
導覽由儲存在符號資訊本機資料庫中的一組標記驅動。每當開啟包含 C++ 原始程式碼檔案的資料夾時,C/C++ 擴充功能就會建立這些檔案中定義的符號資料庫。每當檔案變更時,此資料庫都會更新。如果文件在未儲存的情況下關閉,資料庫將更新至最後儲存的狀態。
搜尋符號
您可以在目前檔案或工作區中搜尋符號,以便更快速地導覽程式碼。
若要搜尋目前檔案中的符號,請按 ⇧⌘O (Windows, Linux Ctrl+Shift+O),然後輸入您要尋找的符號名稱。會出現潛在的相符項目列表,並隨您的輸入進行篩選。從相符項目列表中選擇,即可導覽至該符號的位置。

若要搜尋目前工作區中的符號,請按 ⌘T (Windows, Linux Ctrl+T),然後輸入符號名稱。隨即會出現潛在的相符項目列表。如果您選擇的相符項目位於尚未開啟的檔案中,該檔案將會在導覽至相符位置之前開啟。

您也可以透過 命令面板 (Command Palette)(⇧⌘P (Windows, Linux Ctrl+Shift+P))存取這些命令來搜尋符號。使用 快速開啟 (Quick Open)(⌘P (Windows, Linux Ctrl+P)),然後輸入 @ 命令搜尋目前檔案,或輸入 # 命令搜尋目前工作區。⇧⌘O (Windows, Linux Ctrl+Shift+O) 和 ⌘T (Windows, Linux Ctrl+T) 是 @ 和 # 命令的捷徑。
呼叫階層 (Call hierarchy)
「呼叫階層」檢視顯示了對某個函式的所有呼叫或從該函式發出的呼叫。它讓您可以理解原始程式碼中各函式之間複雜的呼叫關係。
若要檢視呼叫階層,請選取一個函式,按右鍵顯示內容選單,並選擇 顯示呼叫階層 (Show Call Hierarchy)。您也可以使用鍵盤快速鍵(Windows 為 Shift+Alt+H),或呼叫 命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))並執行命令 Calls: Show Call Hierarchy。這會將您選取函式所呼叫的所有函式填入側邊欄的呼叫樹中。

切換側邊欄選單中的電話圖示以切換至「傳入呼叫」。傳入呼叫會顯示您的函式何時被另一個函式參考。您也可以透過選取呼叫樹中已顯示的函式,並對該函式按右鍵來檢視可用命令,藉此探索巢狀呼叫。

預覽 (Peek)
Peek 功能會在 peek 視窗內顯示幾行程式碼,讓您不必離開目前的位置。這對於快速了解符號的內容而不必導覽離開目前的程式碼非常有用。
若要開啟 peek 視窗,請按右鍵存取內容選單,然後選擇 Peek。在那裡,您可以選擇預覽符號的定義、宣告、類型定義或參考。

在 peek 視窗開啟的情況下,您可以瀏覽顯示的結果列表,找到您感興趣的內容。如果您想要導覽至這些結果之一的位置,請選取該結果,或在 peek 視窗左側顯示的原始程式碼中按兩下。
前往定義 (Go to definition)
使用 前往定義 (Go to Definition) 功能可快速導覽至原始程式碼中定義符號的位置。選取原始程式碼中的符號,然後按下 F12,或按右鍵並從內容選單中選擇 前往定義。當該符號只有一個定義時,您會直接導覽至該位置;否則,競爭的定義將會顯示在如前一節所述的 peek 視窗中。
如果找不到您所選符號的任何定義,C/C++ 擴充功能會自動搜尋該符號的宣告。
前往宣告 (Go to declaration)
使用 前往宣告 (Go to Declaration) 功能可導覽至原始程式碼中宣告符號的位置。此功能與 前往定義 的運作方式相同,但針對的是宣告。選取原始程式碼中的符號,按右鍵,並從內容選單中選擇 前往宣告。這會將您導覽至符號宣告的位置。
前往參考 (Go to references)
使用 前往參考 (Go to References) 功能來了解符號在原始程式碼中被參考的頻率與位置。選取原始程式碼中的符號並按下 ⇧F12 (Windows, Linux Shift+F12),或按右鍵並從內容選單中選擇 前往參考。如果找到任何參考,它們會顯示在 peek 視窗中。
前往類型定義 (Go to type definition)
使用 前往類型定義 (Go to Type Definition) 功能可跳轉至原始程式碼中定義類型的位置。選取原始程式碼中的類型,按右鍵開啟內容選單,並選擇 前往類型定義。
後續步驟
繼續閱讀以了解
- 偵錯 C++ 程式碼
- 配置 IntelliSense
- 設定 VS Code 以使用 MSVC
- 設定 VS Code 以使用 Mingw-w64 與 GCC
- 設定 VS Code 以使用 macOS
- VS Code 中的基本編輯
- VS Code 中的程式碼導覽
- VS Code 中的工作 (Tasks)
如果您有任何其他問題或遇到任何問題,請在 GitHub 上提出 issue。您可能會被要求提供來自擴充功能的記錄資訊,以協助診斷問題。請參閱 C/C++ 擴充功能記錄以取得有關提供擴充功能記錄的協助。