関数シグネチャで宣言された 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" ブロック内に含める必要がありますか?
コメントで別のユーザーが指摘したように、マークされた重複はここでの質問を完全には満たしていません。将来、他の人が別の質問に誤解されないように編集しています。