0.C++とCの相互呼び出し

818 ワード

□プロジェクトでC++とCコードを融合させることは、実工事では避けられないことである□C++コンパイラはC言語のコンパイラ方式と互換性があるが、C++コンパイラはC++の方式を優先してコンパイルする□externキーワードを利用して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;
}