Share via


/w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級)

指定編譯器如何對指定的編譯產生警告。

/w
/Wn
/WX
/Wall
/wln
/wdn
/wen
/won

備註

下表中描述可用的選項和相關引數。

選項

描述

/w

停用所有編譯器警告。

/Wn

指定編譯器產生的最高警告層級。 n 範圍的有效警告層級是從 0 到 4:

  • 層級 0 停用所有警告。

  • 層級 1 顯示嚴重警告。 層級 1 是命令列的預設警告層級。

  • 層級 2 顯示所有層級 1 警告,以及嚴重性不及層級 1 的警告。

  • 層級 3 顯示所有層級 2 警告以及對生產用途建議的所有其他警告。

  • 層級 4 顯示所有層級 3 警告再加上在大多數情況下可以安全地被忽略的告知性警告。 這個選項只可用來提供「lint」層級警告,不建議做為平常的警告層級設定。

對於新專案,最好在所有編譯中都使用 /W4。 這樣可以確保將不易發現的程式碼缺點降低到最少程度。

/Wall

啟用所有警告,包括預設停用者。 請參閱預設為關閉的編譯器警告

/WX

將所有編譯器警告視為錯誤。 對於新專案,最好在所有編譯中都使用 /WX;解除所有警告可以確保將不易發現的程式碼缺點降低到最少程度。

連結器也有 /WX 選項,如需詳細資訊,請參閱 /WX (將連結器警告視為錯誤)

/wln

指定特定警告的層級。 第一個參數是設定警告層級 (與 /Wn 相同) 而第二個參數則是實際的警告編號。

例如,/w14326 會使 C4326 成為層級 1 警告。

/wdn

停用指定的編譯器警告,其中 n是編譯器警告編號。

例如,/wd4326 會停用編譯器警告 C4326。

/wen

將特定的編譯器警告視為錯誤,其中 n 為編譯器警告。

例如,/we4326 會將警告號碼 C4326 標記為錯誤。

/won

只報告一次錯誤,其中 n 是編譯器警告。

例如,/wo4326 會使警告 C4326 只被報告一次。

如果您以 /w 的其中一個選項建立先行編譯標頭 (/Yc (建立先行編譯標頭檔)),則只要使用此先行編譯標頭 (/Yu (使用先行編譯標頭檔)) 都會讓同樣的 /w 選項再作用一次。 您可以在命令列以另一個 /w 選項覆寫先行編譯標頭中的 /w 設定。

在原始程式碼中的 Pragma 指示詞不會受 /w 選項的影響。

您也可以使用 warning,控制在編譯時期報告的警告層級。

C/C++ 建置錯誤會描述各項警告、指出每個警告的層級,並且指出陳述式中可能不會如您預期進行編譯的潛在問題 (而非實際編碼方式的錯誤)。

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

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱 HOW TO:開啟專案屬性頁

  2. 按一下 [C/C++] 資料夾。

  3. 按一下 [一般] 屬性頁,並且修改 [警告層級] 或 [警告視為錯誤] 屬性。

  4. 按一下 [進階] 屬性頁並且修改 [停用特定警告] 屬性。

  5. 對於其餘的選項,按一下 [命令列] 屬性頁,並且在 [其他選項] 方塊中輸入編譯器選項。

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

請參閱

參考

編譯器選項

設定編譯器選項