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