在C代码中调用C++接口

时间:2021-07-09 02:10:54

一 在C源文件中调用C++封装的接口

例如:

要想在A.c文件中,调用生命在B.h,实现在B.cpp中的接口bool getMAC(char *mac_addr);

其实现方法 B.cpp 如下:

 1 // B.cpp
2
3 #ifndef _cplusplus
4 #define _cplusplus
5 #endif
6
7 #include <stdio.h>
8
9 bool getMAC(char *mac_addr)
10 {
11 // your code
12
13 }

B.h 头文件的声明为:

 1 // B.h
2
3 #ifndef _B_H
4 #define _B_H
5
6 #ifdef __cplusplus //__cplusplus是cpp中自定义的一个宏
7 extern "C" { //告诉编译器,这部分代码按C语言的格式进行编译,而不是C++的
8 #endif
9
10 bool getMAC(char *mac_addr);
11
12 #ifdef __cplusplus
13 }
14 #endif
15
16 #endif

A.c 中正常调用即可

// A.c 

#include
"B.h"
#include
<stdio.h>

int main()
{
bool bRet = false;
char chMac[16] = {0};

bRet
= getMAC(chMac);

return 0;
}