c++——extern “C”的使用(cpp文件调用c文件)

1、extern “C” 的概念

extern “C” 是 C++ 提供的一个语法特性,用于在 C++ 代码中调用和使用 C 语言风格的函数和变量。C++ 和 C 在底层有一些不同的编译和链接约定,这会导致 C++ 编译后的函数名在链接时会带有额外的信息,与 C 代码的函数名不匹配。通过使用 extern “C”,我们可以告诉编译器按照 C 语言的约定来处理函数名和链接,从而实现 C 和 C++ 的混合编程。

2、extern “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;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值