extern" C"还需要将Cpp文件中使用的全局变量链接到c文件中定义的变量吗?
它用于连接C ++文件中的函数,该文件在C文件中引用,因为C ++文件中的函数名称被修改了。 C编译器是否也更改了变量的名称?
答案 0 :(得分:5)
是否还需要
extern "C"
将Cpp文件中使用的全局变量链接到c文件中定义的变量?
Portly,是的。
您可能会发现遗漏extern "C"
适用于您的编译器(例如,GCC,它不会破坏全局命名空间中的C ++变量名称),但这不是您可以做的事情依赖于所有编译器。
C编译器是否也改变了变量的名称?
这取决于编译器(具体来说,取决于它使用的ABI)。语言标准没有规定语言级名称如何映射到链接器符号,因此不同的编译器可以使用不同的名称修改方案。
答案 1 :(得分:0)
变量不需要它。外部" C"函数是必需的,因为在C ++中,可以为不同数量和类型的参数定义多次函数。每个函数名称包括编码形式的参数。但是这些变量不能重新定义,并且C和C ++中的名称相同(兼容)。