/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 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [ 組態屬性 > C/C++ > 語言] 屬性頁。
修改停用語言延伸模組 屬性。
若要以程式方式設定這個編譯器選項
請參閱 DisableLanguageExtensions。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應