/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:c11 または /std:c17 が指定されている場合は明示的に有効にすることができます。 このオプションの負のバージョンはありません。

このオプションは、ソースの破壊的変更です。 __STDC__1 のときは POSIX 関数が公開されない UCRT の動作により、安定した言語バージョンに破壊的変更を加えることなく、既定で 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__を追加します。 [OK] または [適用] を選択して、変更内容を保存します。

関連項目

/Zc (準拠)
/std (言語の標準バージョンの指定)