打印
[其它应用]

说一说extern“C”

[复制链接]
1081|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2024-3-10 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

    这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern "C"就是其中的一个策略。


    • C++代码调用C语言代码
    • 在C++的头文件中使用
    • 在多个人协同开发时,可能有的人比较擅长C语言,而有的人擅长C++,这样的情况下也会有用到

使用特权

评论回复
沙发
tpgf| | 2024-4-3 10:11 | 只看该作者
在什么型号的单片机上可以运行c++语言呢

使用特权

评论回复
板凳
heimaojingzhang| | 2024-4-3 10:47 | 只看该作者
在什么情况下 需要c++调用c代码呢

使用特权

评论回复
地板
keaibukelian| | 2024-4-3 11:39 | 只看该作者
这样的调用方式会额外占用资源吗

使用特权

评论回复
5
paotangsan| | 2024-4-3 12:58 | 只看该作者
在单片机中可以正常运行c++语言吗

使用特权

评论回复
6
renzheshengui| | 2024-4-3 14:03 | 只看该作者
由于C、C++编译器对函数的编译处理是不完全相同的,尤其对于C++来说,支持函数的重载,编译后的函数一般是以函数名和形参类型来命名的。

使用特权

评论回复
7
guanjiaer| | 2024-4-3 23:53 | 只看该作者
c语言和c++语言在同一个工程中出现 会不会造成阅读代码的困难啊

使用特权

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

本版积分规则

376

主题

1418

帖子

1

粉丝