• 已解决 73498 个问题
  • 已帮助 5995 位优秀工程师

关于extern C的理解

donatello 2018-03-10 浏览量:551

如题,我们都知道extern C的作用主要是为了让C和C++两个不同编译器的函数库兼容,这里就提到了C++函数重载的问题,C++的函数名称会重载,这是为什么呢?以我所学的C++知识,我只知道函数唯一的标识是形参列表,如果函数名称都改变了,那还是原来那个函数么?

2.png

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 个人觉得函数声明(定义)在编译进库后仅仅是一段机器码,其名称仅仅用于定位这段机器码(类似于查表用的标识)

    而 extern C  类的声明定义是用于协定这种标识使用规范的,因为有了这样的协定,则使用者(编译器)都知道如何正确的在链接库时引用到正确的位置。这样的声明定义不光涉及了 函数名处理,其实还有一个更近一步的协定时参数压入的规范(否则会出现参数不一致问题)

    • 发布于 2018-03-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :ACPR1208S150MT只有这个是汽车级 回复

其他答案 数量:0
关于extern C的理解