/Zc:__STDC__
(啟用 __STDC__
宏)
編譯器選項會將 /Zc:__STDC__
內 __STDC__
建預處理器巨集定義為 C 程式碼中的 1。
語法
/Zc:__STDC__
備註
編譯 /Zc:__STDC__
程式選項會實作預處理器宏的標準 __STDC__
C 一致性行為,在編譯 C11 和 C17 程式碼時將其設定為 1。
此選項 /Zc:__STDC__
是 Visual Studio 2022 17.2 版的新功能。 此選項預設為關閉,但在指定 或 /std:c17
時 /std:c11
可以明確啟用。 沒有選項的負版本。
此選項是來源中斷性變更。 由於 UCRT 的行為不會在 為 1
時 __STDC__
公開 POSIX 函式,因此預設無法為 C 定義此宏,而不需要對穩定語言版本進行重大變更。
範例
// test__STDC__.c
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
int main() {
#if __STDC__
int f = _open("file.txt", _O_RDONLY);
_close(f);
#else
int f = open("file.txt", O_RDONLY);
close(f);
#endif
}
/* Command line behavior
C:\Temp>cl /EHsc /W4 /Zc:__STDC__ test__STDC__.c && test__STDC__
*/
在 Visual Studio 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
在 [其他選項] 中 ,新增
/Zc:__STDC__
。 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應