两种情况①C++调用C ②C调用C++。
1、C++调用C
①有源码的情况下,在C的*.h文件函数声明时加入extern "C" {}
例如如下代码,在编译时,此文件会被gcc编译。
#ifdef __cplusplus
extern "C" {
#endif
//函数声明void start_convert(void);
#ifdef __cplusplus
}
#endif
编译过程输出
②如果没有C的源码只有C的库文件,有两种方法解决
1)在库文件对应的头文件加入extern "C" {};
2)在引用*.h头文件时加入extern "C" {}例如
extern "C" {
#include "header.h"
}
2、C调用C++
①有源码
我们只需要在cpp文件中用 文章开头的源码声明形式,把需要被C文件调用的cpp函数包含即可
②无源码
只有C++的库文件,增加一层封装