Extern “C” 用法小结

本文介绍两种在C++项目中使用C代码的方法:一是通过在C函数声明前添加extern关键字并在C++文件中使用extern C{}

方法一:在C函数加上 extern 关键字,在相应的c++文件中用 extern “C” {include “c.h”}引入C的头文件
 ---------/*Max.h*/-------------------------

#ifndef _MAX_H_
#define _MAX_H_
extern int max(int x, int y);
#endif


#ifndef _MAX_H_
#define _MAX_H_
extern int max(int x, int y);
#endif

 ---------//*Max.c*/ ---------

#include “Max.h”
int max(int x, int y)
{
       return x>y?x:y;
}
 

------------/*Test.cpp*/-------------

extern "C"{
#include "max.h"
}
 
int main(void)
{
       int a=2, b=90;
       int c = 0;
       c = max(a,b);
}
 


方法二:利用C++宏 __cplusplus

----------/*Max.h*/-------------

#ifndef _MAX_H_
#define _MAX_H_
 
#ifdef __cplusplus
extern "C"{
#endif
 
extern int max(int x, int y); 
#ifdef __cplusplus
}

#endif 
#endif /*_MAX_H_*/ 

--------------/*Max.c*/----------------

#include “Max.h”
int max(int x, int y)
{
       return x>y?x:y;
}
 

-----------/*Test.cpp*/---------------

#include "max.h"
int main(void)
{
       int a=2, b=90;
       int c = 0;
       c = max(a,b);
}
 


因为C中没有定义__cplusplus宏,所以在C编译器看来,Max.h为:
extern int max(int x, int y);
而在c++看来,Max.h为:
extern "C"{
extern int max(int x, int y);
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值