extern "C"


#ifdef __cplusplus  //__cplusplus是cpp中自定义的一个宏
extern "C" { //告诉编译器,这部分代码按C语言的格式进行编译,而不是C++的
#endif 

  /**** some declaration or so *****/ 

#ifdef __cplusplus
}
#endif

extern "C"有两层含义:被它修饰的目标是“extern”的;被它修饰的目标是“C”的。

为支持重载,C++编译函数名时会在函数名后加上参数类型。
C语言不支持重载,编译函数时只有函数名。
extern "C" 告诉编译器按C语言方式进行编译,编译出的函数符号只有函数名。

通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。
与extern对应的是static,被它修饰的全局变量和函数只能在本模块中使用。

__cplusplus宏只在cpp文件中有定义,在c文件没有定义。头文件的__cplusplus宏,根据其包含的位置决定是否定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值