C++知识分享:C++项目中的extern "C" {}

本文介绍了C++项目中extern "C" {}的作用,以及#ifdef _cplusplus/#endif _cplusplus的条件编译用法。通过详细解释extern关键字和"C"的作用,探讨了C和C++混合编程中如何处理函数调用和头文件包含,特别关注了在C++中使用extern "C"声明以兼容C语言的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用C++的项目源码中,经常会不可避免的会看到下面的代码:

#ifdef __cplusplus

extern "C" {

#endif

/*...*/

#ifdef __cplusplus

}

#endif它到底有什么用呢,你知道吗?而且这样的问题经常会出现在面试or笔试中。下面我就从以下几个方面来介绍它:

1、#ifdef _cplusplus/#endif _cplusplus及发散

2、extern “C”

2.1、extern关键字

2.2、”C”

2.3、小结extern “C”

3、C和C++互相调用

3.1、C++的编译和连接

3.2、C的编译和连接

3.3、C++中调用C的代码

3.4、C中调用C++的代码

4、C和C++混合调用特别之处函数指针

1、#ifdef _cplusplus/#endif _cplusplus及发散

在介绍extern “C”之前,我们来看下#ifdef _cplusplus/#endif _cplusplus的作用。很明显#ifdef/#endif、#ifndef/#endif用于条件编译,#ifdef _cplusplus/#endif _cplusplus——表示如果定义了宏_cplusplus,就执行#ifdef/#endif之间的语句,否则就不执行。

在这里为什么需要#ifdef _cplusplus/#endif _cplusplus呢?因为C语言中不支持extern “C”声明,如果你明白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值