/Zc:externC (標準の C/C++ extern "C" ルール)

/Zc:externC コンパイラ オプションを指定すると、コンパイラに対して C++ 標準に準拠するように指示し、extern "C" として宣言された関数に対して一貫したパラメーター宣言が適用されます。

構文

/Zc:externC
/Zc:externC-

解説

/Zc:externC コンパイラ オプションを指定すると、extern "C" を使用して宣言された関数の定義がチェックされます。

/Zc:externC オプションは、Visual Studio 2019 バージョン 16.3 以降で使用できます。 /permissive- オプションが設定されていない場合は、オフになります。 以前のバージョンの Visual Studio では、既定で、または /Zc:externC- が指定されている場合、extern "C" 関数の一致する宣言が許容されます。 /permissive- オプションでは /Zc:externC が有効になるため、/std:c++20 または /std:c++latest を使用するプロジェクトではデフォルトでオンになります。 /Zc:externC オプションは、コマンドラインで /permissive- オプションの後に指定する必要があります。

extern "C" 宣言が一致していない場合は、コンパイラ エラー C2116 および C2733 が発生することがあります。 C++ コードでは、extern "C" 関数を複数回宣言して異なるパラメーターの型を使用すると、型が同じ定義を持つ場合でも、エラーが発生することがあります。 /Zc:externC- オプションを指定すると、このチェックが緩和され、これらのエラーは生成されません。

このコンパイラ オプションを Visual Studio で使用するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. /Zc:externC または /Zc:externC-[追加オプション] ペインに追加します。

関連項目

/Zc (準拠)