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

/Za 編譯器選項會停用併發出 Microsoft 延伸模組與 ANSI C89/ISO C90 不相容的錯誤。 已被 取代的 /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++ 編譯模式中 ,/Za 選項可能會導致非預期的行為,不建議這麼做。

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

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

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

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

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

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

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

請參閱 DisableLanguageExtensions

另請參閱

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