/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 中設定這個編譯器選項

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

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [其他選項] 中 ,新增 /Zc:__STDC__ 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。

另請參閱

/Zc (一致性)
/std (指定語言標準版本)