赞
踩
extern “C” 是 C++ 提供的一个语法特性,用于在 C++ 代码中调用和使用 C 语言风格的函数和变量。C++ 和 C 在底层有一些不同的编译和链接约定,这会导致 C++ 编译后的函数名在链接时会带有额外的信息,与 C 代码的函数名不匹配。通过使用 extern “C”,我们可以告诉编译器按照 C 语言的约定来处理函数名和链接,从而实现 C 和 C++ 的混合编程。
①在 C++ 中调用 C 语言函数
通常情况下,C++ 中的函数名会经过一些名称修饰,以包括参数类型等信息。但如果我们要在 C++ 中调用 C 语言编写的函数,就需要确保函数名和链接方式与 C 语言兼容。
extern "C" {
void cFunction(int a, int b); // 在 C++ 代码中声明 C 语言风格的函数
}
int main() {
cFunction(5, 3); // 调用 C 语言风格的函数
return 0;
}
②在 C++ 中使用 C 语言变量
类似地,如果我们要在 C++ 中使用 C 语言的全局变量,也需要使用 extern “C”。
extern "C" {
int cGlobalVariable; // 在 C++ 代码中声明 C 语言风格的全局变量
}
int main() {
cGlobalVariable = 10; // 使用 C 语言风格的全局变量
return 0;
}
③在 C++ 中包含 C 语言头文件
如果你在 C++ 代码中包含了一个 C 语言风格的头文件,你需要使用 extern “C” 来保证正确的链接。
extern "C" {
#include "c_header.h" // 包含 C 语言风格的头文件
}
int main() {
cFunction(5, 3); // 调用 C 语言风格的函数
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。