0.C++とCの相互呼び出し
818 ワード
□プロジェクトでC++とCコードを融合させることは、実工事では避けられないことである□C++コンパイラはC言語のコンパイラ方式と互換性があるが、C++コンパイラはC++の方式を優先してコンパイルする□externキーワードを利用してC++コンパイラにコードのC方式コンパイルを強制させる
1、C++とCの相互呼び出し
□統合されたソリューション▪ __cplusplusはC++コンパイラに内蔵された標準マクロ定義です▪ __cplusplusの意味:CコードをCコンパイラのコンパイルでもC++コンパイラでもC方式でコンパイルできるようにする
△C++コンパイラは、複数のリロード関数をCでコンパイルできないことに注意してください.次のコードコンパイルは通過しません.
1、C++とCの相互呼び出し
□統合されたソリューション▪ __cplusplusはC++コンパイラに内蔵された標準マクロ定義です▪ __cplusplusの意味:CコードをCコンパイラのコンパイルでもC++コンパイラでもC方式でコンパイルできるようにする
#ifdef __cplusplus
extern "C" {
#endif
//
......
#ifdef __cplusplus
}
#endif
△C++コンパイラは、複数のリロード関数をCでコンパイルできないことに注意してください.次のコードコンパイルは通過しません.
#include
#ifdef __cplusplus
extern "C" {
#endif
int func(int a, int b)
{
return a + b;
}
int func(const char* s)
{
return strlen(s);
}
#ifdef __cplusplus
}
#endif
int main(int argc, char *argv[])
{
printf("Press enter to continue ...");
getchar();
return 0;
}