/Zc:__STDC__ (マクロを有効にする __STDC__ )

コンパイラ オプションは /Zc:__STDC__ 、組み込みの __STDC__ プリプロセッサ マクロを C コードで 1 として定義します。

構文

/Zc:__STDC__

解説

コンパイラ オプションは /Zc:__STDC__ 、プリプロセッサ マクロの標準 C 準拠動作 __STDC__ を実装し、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 (言語の標準バージョンの指定)