/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 で使用するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
追加オプションで
/Zc:__STDC__
を追加します。 [OK] または [適用] を選択して、変更内容を保存します。