6

extern "C"次のように、ファイルの先頭で使用している C++ のコードがいくつかあります。

#ifdef __cplusplus 
extern "C" {} 
#endif

これは何を意味するのでしょうか?それはどのように機能しますか?

4

4 に答える 4

5

これは、中括弧内で定義された関数のC++名前マングリングを無効にするようにコンパイラーに通知するために使用されます。http://en.wikipedia.org/wiki/Name_mangling

于 2012-02-08T09:20:44.673 に答える
4

それはおそらくそのようではありませんが、もっと似ています:

#ifdef __cplusplus 
extern "C" {
#endif

//some includes or declarations

#ifdef __cplusplus 
}
#endif

Cこれは、ディレクティブ内で宣言されているものすべてに名前マングリングを使用するようにコンパイラーに指示します。

あなたが今それを持っている方法:

#ifdef __cplusplus 
extern "C" {} 
#endif

デッドコードです。

于 2012-02-08T09:20:13.517 に答える
0

リンケージ仕様を指定します。
コードをリンクする方法をリンカに指示します。

CとC++のコードを混在させたい場合に便利です。

于 2012-02-08T09:19:34.070 に答える
0

Extern "C"-指定された関数がCスタイルでコンパイルされていることをコンパイラに通知します。

于 2012-02-08T09:20:41.047 に答える