zhiye_wang

向星空仰望的越深,越发现自己的渺小

博客园 首页 新随笔 联系 订阅 管理

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

 

posted on 2016-03-02 10:42  zhiye_wang  阅读(562)  评论(0编辑  收藏  举报