2

重複の可能性:
C++ で extern “C”{ #include <foo.h> } が必要なのはなぜですか?

コードで何度も次のようなステートメントを見てきました。

extern "C" {

//some code

        }; 

これは正確にはどういう意味ですか?

4

3 に答える 3

1

次のコードを C++ コードではなく C コードとして扱うようコンパイラーに指示します。

于 2011-03-28T17:29:15.463 に答える
1

これは、「一部のコード」を C スタイルでコンパイルする必要があることを C++ コンパイラに伝えます。これにより、C と C++ コード間のリンケージが可能になります。

于 2011-03-28T17:28:46.520 に答える
0

さらに言えば、関数が同じリンケージ タイプを持つように指定しない限り、C 関数から呼び出された場合、C++ リンケージを持つ関数はリンカによって検出されません。そのため、あらゆる種類のリンク エラーが表示されますが、その理由は明らかではありません。

于 2011-03-28T17:30:19.273 に答える