3、C和C++混合编程\调用

两种情况①C++调用C ②C调用C++。

1、C++调用C

①有源码的情况下,在C的*.h文件函数声明时加入extern "C" {}

例如如下代码,在编译时,此文件会被gcc编译。

#ifdef __cplusplus
       extern "C" {
       #endif

       //函数声明void start_convert(void);

       #ifdef __cplusplus
       }
       #endif

编译过程输出

3、C和C++混合编程\调用_第1张图片

②如果没有C的源码只有C的库文件,有两种方法解决

1)在库文件对应的头文件加入extern "C" {};

2)在引用*.h头文件时加入extern "C" {}例如

extern "C" {
    #include "header.h"

}

2、C调用C++

①有源码

我们只需要在cpp文件中用 文章开头的源码声明形式,把需要被C文件调用的cpp函数包含即可

 

②无源码

只有C++的库文件,增加一层封装

你可能感兴趣的:(cpp)