コードで何度も次のようなステートメントを見てきました。
extern "C" {
//some code
};
これは正確にはどういう意味ですか?
コードで何度も次のようなステートメントを見てきました。
extern "C" {
//some code
};
これは正確にはどういう意味ですか?
次のコードを C++ コードではなく C コードとして扱うようコンパイラーに指示します。
これは、「一部のコード」を C スタイルでコンパイルする必要があることを C++ コンパイラに伝えます。これにより、C と C++ コード間のリンケージが可能になります。
さらに言えば、関数が同じリンケージ タイプを持つように指定しない限り、C 関数から呼び出された場合、C++ リンケージを持つ関数はリンカによって検出されません。そのため、あらゆる種類のリンク エラーが表示されますが、その理由は明らかではありません。