Visual Studio に C11 および C17 サポートをインストールする
C11 および C17 標準のサポートには、Visual Studio 2019 バージョン 16.8 以降が必要です。 このバージョンのドキュメントを表示するには、この記事の Visual Studio の [バージョン] セレクター コントロールを Visual Studio 2019 に設定してください。 このページの目次の一番上にあります。
C11 および C17 標準のサポートは、Visual Studio 2019 バージョン 16.8 以降で使用できます。 サポートには、準拠するプリプロセッサ (/Zc:preprocessor
) で正常に動作するために、更新されたユニバーサル C ランタイム (UCRT) と Windows SDK バージョンが必要です。
Windows SDK のリリースは、Windows OS のリリースに対応しています。 C11 と C17 のサポートには Windows SDK 10.0.20348.0 (バージョン 2104) 以降が必要です。 Windows SDK は、Visual Studio インストーラーの [個々のコンポーネント] タブのインストール可能なオプションです。 次の手順に従って、Visual Studio またはコマンド ラインで最新の SDK を設定し、C11 または C17 コードをビルドできます。
前提条件
Visual Studio 2019 バージョン 16.8 以降と Windows SDK 10.0.20348.0 (バージョン 2104) 以降がコンピューターにインストールされ、実行されていること。 最適なサポートのため、最新バージョンを使用することをお勧めします。
Visual Studio がまだインストールされていない場合、インストール手順については、Visual studio に C++ サポートのインストールに関する記事を参照してください。 インストールには、C++ ワークロードによるデスクトップ開発を含めます。 次に、[個々のコンポーネント] タブを開きます。Windows 10 SDK (10.0.20348.0) 以降、または最新の Windows 11 SDK を選択します。
Visual Studio が既にインストールされているが、必須の Windows SDK がない場合、Visual Studio インストーラーを開きます。 お使いの Visual Studio バージョンの隣りにある [変更] を選択し、選択したコンポーネントをインストールします。 [個々のコンポーネント] タブを開きます。Windows 10 SDK (10.0.20348.0) 以降、または最新の Windows 11 SDK を選択します。 [変更] を選択し、選択済みのコンポーネントをインストールします。
インストールが完了したら、Visual Studio を開きます。
Visual Studio で C11 または C17 モードを構成する
Visual Studio で、新規または既存の C プロジェクトを開き、プロジェクトの [プロパティ ページ] ダイアログを開きます。
今インストールした Windows SDK を使用するようにプロジェクトを設定します。 [構成プロパティ]>[全般] ページで、 [Windows SDK バージョン] プロパティを 10.0 (最新のインストール済みバージョン) に設定するか、インストールした特定の SDK バージョンに設定します。
C 固有のオプション (C 言語標準) も表示されます。 このプロパティを [ISO C11 Standard (/std:c11
)](ISO C11 標準 (/std:c11
)) または [ISO C17 (2018) Standard (/std:c17
)](ISO C17 (2018) 標準 (/std:c17
)) に設定します。
言語が C++ の場合、C++ 言語標準プロパティが使用されます。 ファイル拡張子が .cpp
の場合の既定値です。 言語が C の場合、C 言語の標準プロパティ バージョンが使用されます。ファイル拡張子が .c
の場合の既定値です。 C11 または C17 を使用してビルドするには、ソース コードを .c
ファイルに配置するか、C としてコンパイルするようにコードを設定します。このプロパティは、プロジェクトの [構成プロパティ]>[C/C++]>[詳細] ページで設定できます。 [コンパイル言語の選択] プロパティを [C コードとしてコンパイル (/TC)] に設定します。
これで、Visual Studio で C11 と C17 のコードをビルドするために必要なすべての設定が完了しました。