打印
[其它应用]

c++里用extern“C”跟直接使用c语言有什么区别啊?

[复制链接]
3661|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FranklinUNK|  楼主 | 2024-6-20 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这样是不是差不多啊

使用特权

评论回复
沙发
Henryko| | 2024-6-27 15:25 | 只看该作者
这个是告诉编译器用c格式编译吧

使用特权

评论回复
板凳
黑心单片机| | 2024-6-27 16:45 | 只看该作者
应该用起来没啥区别吧

使用特权

评论回复
地板
狄克爱老虎油| | 2024-7-22 14:55 | 只看该作者
这是用c++编译器编译c

使用特权

评论回复
5
尽快回复过| | 2024-7-25 16:30 | 只看该作者
extern "C" 是实现 C++ 和 C 语言代码互操作的关键工具,确保不同语言的代码能够正确链接和调用。

使用特权

评论回复
6
powerantone| | 2024-8-7 20:07 | 只看该作者
C语言适用于需要过程式编程的场景,而C++中的extern "C"则是一种机制,用于在C++项目中包含和使用C语言编写的代码或库。

使用特权

评论回复
7
又见春光| | 2025-6-29 18:42 | 只看该作者
在 C++ 中使用extern "C"与直接使用 C 语言存在本质区别,关键在于编译和链接机制的不同。
1. extern "C"的作用
extern "C"是 C++ 特有的语法,用于告诉编译器:“这段代码按 C 语言的规则编译和链接”。主要解决的问题是:
函数名修饰(Name Mangling):C++ 为支持重载(同名函数不同参数),会在编译时修改函数名(如int add(int a, int b)可能被编译为_Z3addii),而 C 语言不支持重载,函数名直接编译为原名称(如add)。
链接兼容性:当 C++ 代码需要调用 C 语言编写的库(如标准 C 库libc)时,若不使用extern "C",链接器会因函数名不匹配而报错(找不到_Z3addii)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

329

帖子

0

粉丝