分享方式:


/Za、/Ze (停用語言擴充功能)

/Za 編譯程式選項會停用併發出與 ANSI C89/ISO C90 不相容之 C 之Microsoft延伸模組的錯誤。 已被 取代的 /Ze 編譯程式選項會啟用Microsoft擴充功能。 Microsoft 擴充功能預設為啟用。

語法

/Za
/Ze

備註

注意

不建議在程式代碼編譯為C++時使用 /Za/Ze 選項已被取代,因為其行為預設為開啟。 如需已淘汰的編譯程式選項清單,請參閱 已淘汰和移除的編譯程序選項

Microsoft C/C++ 編譯程序支援以兩種方式編譯 C 程式代碼:

  • 當來源檔案具有 .c 擴展名,或指定 /Tc 或 /TC 選項時,編譯程式預設會使用 C 編譯模式。 C 編譯程式是 C89/C90 編譯程式,預設會啟用 C 語言的Microsoft延伸模組。 如需特定擴充功能的詳細資訊,請參閱 C 和 C++Microsoft 延伸模組。 指定 C 編譯和 /Za 選項時,C 編譯程式會嚴格符合 C89/C90 標準。 編譯程式會將Microsoft擴充關鍵詞視為簡單標識碼、停用其他Microsoft延伸模組,並自動定義 C 程式__STDC__預先定義的巨集。

  • 編譯程式可以在編譯模式C++編譯 C 程序代碼。 此行為是沒有 .c 擴展名之來源檔案的預設值,且指定 /Tp/TP 選項時。 在C++編譯模式中,編譯程式支援已納入C++標準的 ISO C99 和 C11 標準部分。 幾乎所有的 C 程式代碼也是有效的 C++ 程式代碼。 少數 C 關鍵詞和程式代碼建構在程式碼 C++ 無效,或在 C++ 中以不同的方式解譯。 在這些情況下,編譯程式會根據C++標準運作。 在C++編譯模式中, /Za 選項可能會導致非預期的行為,不建議這麼做。

其他編譯程式選項可能會影響編譯程式確保標準一致性的方式。 如需指定特定標準 C 和C++行為設定的方式,請參閱 /Zc 編譯程序選項。 如需其他C++標準一致性設定,請參閱 /permissive-/std 編譯程序選項。

如需 Visual C++一致性問題的詳細資訊,請參閱 非標準行為

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

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

  2. 選取 [組態屬性]>[C/C++]>[語言] 屬性頁。

  3. 修改停用語言延伸模組屬性。

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

請參閱 DisableLanguageExtensions

另請參閱

編譯器選項
/Zc (一致性)
/permissive- (標準一致性)
/std (指定語言標準版本)