0. C++和C的相互调用

❖ 在项目中融合 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;
}

你可能感兴趣的:(0. C++和C的相互调用)