c++里用extern“C”跟直接使用c语言有什么区别啊?
这样是不是差不多啊 这个是告诉编译器用c格式编译吧 应该用起来没啥区别吧 这是用c++编译器编译c extern "C" 是实现 C++ 和 C 语言代码互操作的关键工具,确保不同语言的代码能够正确链接和调用。 C语言适用于需要过程式编程的场景,而C++中的extern "C"则是一种机制,用于在C++项目中包含和使用C语言编写的代码或库。 在 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)。
页:
[1]