extern "C"什么意思


缘由用途

 主要用于c++与其他语言的混合编程,C语言不支持函数重载,编译之后的函数名依然是原函数名。在c++中,支持了函数重载,重载之后的函数名 为 原函数名+参数名。比如函数 bool max(int a, int b),编译之后,c中为 max,  而c++中函数名变成了  max_int_int。



c++

使用

c++头文件中调用c语言代码

c语言不支持 extern "C", 要让其他语言按c格式编译,必须在c++头文件中调用c语言,使用extern "c"申明。

extern “C” 告诉 编译器, 按C语言的格式编译和链接

// a.h
#ifndef A_H
#define A_H
extern "C" int max(int a, int b);
#endif

以上代码, A模块调用其他模块的max函数, 如果不使用extern "C"申明, 会按C++语法编译, 编译后调用函数名为max_int_int,而实际需要调用名为max,此时连接器会找不到要调用的函数模块而报错。

c语言引用c++头文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值