一 在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;
}