8

関数シグネチャで宣言された extern "C" を使用し、C ヘッダーを CPP ファイルにインクルードしている C/C++ コードを見たことがあります。

ただし、一部の関数は、署名の前に extern を宣言するだけです (「C」なし)。

QN1:

関数を定義するこれらの両方の方法は同じ効果がありますか、それとも異なることを意味しますか?

私が非常にばかげている場合は申し訳ありませんが、Googleでこの違いを見つけることができません.

例えば:

extern int someFunction( void *ret_val);

extern "C" int someFunction( void *ret_val);

QN2:

関数が署名に extern で宣言されている場合、対応するヘッダー ファイルを extern "C" ブロック内に含める必要がありますか?

コメントで別のユーザーが指摘したように、マークされた重複はここでの質問を完全には満たしていません。将来、他の人が別の質問に誤解されないように編集しています。

4

3 に答える 3