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

[复制链接]
3839|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
尽快回复过 发表于 2024-7-25 16:30 | 显示全部楼层
extern "C" 是实现 C++ 和 C 语言代码互操作的关键工具,确保不同语言的代码能够正确链接和调用。
powerantone 发表于 2024-8-7 20:07 | 显示全部楼层
C语言适用于需要过程式编程的场景,而C++中的extern "C"则是一种机制,用于在C++项目中包含和使用C语言编写的代码或库。
又见春光 发表于 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

粉丝
快速回复 在线客服 返回列表 返回顶部