/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 的行為,當 __STDC__
為 1
時不會公開 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__
。 選擇 [確定] 或 [套用] 以儲存變更。