相关疑难解决方法(0)

1511
推荐指数
11
解决办法
72万
查看次数

C的"外部"如何运作?

我有一个C/C++程序,它是Firefox的插件.因为它是一个插件,它有非主要入口点.这些入口点需要在C中编译,因为否则会导致名称损坏.但是,其他函数是过载的,所以它们需要是C++.解决方案是外部"C".我已经想通了.

但是,如果我在.c文件周围的外部"C",我会收到链接错误,因为C++文件名称被破坏,但.c文件中的调用没有.至少我认为这是正在发生的事情.

解决方案是将外部"C"放在.h文件周围.这个SEEMS意味着.h文件中声明的函数的名称不会被破坏,即使它们是在(可能是损坏的).c文件中定义的.

然而,对我来说,为什么这会起作用并没有任何意义.这是一块垃圾吗?我是否为以后难以找到的bug做好准备?或者这是解决这个问题的正确方法吗?

c c++

4
推荐指数
2
解决办法
5665
查看次数

标签 统计

c ×2

c++ ×2

extern-c ×1

linkage ×1

name-mangling ×1