私はextern "C"
の使い方を知っていますが、使用する必要がある条件は何ですか?extern "C"はいつ使用しますか?
extern "C"
は任意の名前マングリング に中括弧内のコードを実行することではないC++コンパイラに指示します。これにより、C++内の からC関数を呼び出すことができます。例えば
:
#include <string.h>
int main()
{
char s[] = "Hello";
char d[6];
strcpy_s(d, s);
}
これはVC++でコンパイル罰金ながら。しかし時にはこれは次のように書かれています:
extern "C" {
#include <string.h>
}
私はポイントが表示されません。 extern "C"
が必要な実際の例はありますか?
代わりの名前の符号化を避けるために、 'を'ハッキングし、使用''ヘッダ。 –
@AlexandreC .: ''ヘッダを使用することは絶対にお勧めできません。 ''ヘッダは、グローバル名前空間に識別子を置くことは保証されていません。したがって、グローバル名前空間識別子が他のコンパイラに移動されたときにそれに依存するコードを破壊します。また、 ''ヘッダーは、実際にはグローバル名前空間に識別子を配置することができるため、理論上は、非汚染グローバル名前空間に依存するコードを破ることもできます。 "理論的には"あまりにも漠然としている。少なくとも1人の馬鹿がそれをしました。だから、それらを使用しないでください。 –
@ AlfP.Steinbach:C++を書くなら、 ''を使ってください。あなたがCを書くなら、 ''を使い、**あなたのコードをCコンパイラ**でコンパイルしてください。言語を混ぜるのは良い考えではありません。 –