C++⇔C

・C++からCの関数を呼び出す方法

http://www.geocities.jp/ky_webid/cpp/language/038.html

C言語
オーバーロードがないため同じ名前の関数はひとつしかできない
void function();

C++言語
同じ名前の関数をオーバーロードできる
void function();
void function( int a );

・C++ではコンパイル時に自動的に違う関数名にされるため、C++からCの関数は呼び出せない。

-----------------------------------

-----------------------------------

・externで囲むとC++から呼び出せるようになる。

extern "C" void function();

extern "C" {
void function1();
void function2();
void function3();
}

-----------------------------------

-----------------------------------

・Cではexternは定義されていないのでCとして使う場合はexternを付けてはいけない。

#ifdef __cplusplus
extern "C" {
#endif

void function1();
void function2();
void function3();

#ifdef __cplusplus
}
#endif
最終更新:2008年11月25日 15:42
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。