将 Cpp 文件中使用的全局变量链接到 c 文件中定义的变量是否也需要 extern "C"?
它用于链接来自 C++ 文件的函数,该函数在 C 文件中引用,因为 C++ 文件中函数名称的名称重整。 C编译器是否也会更改变量的名称??
最佳答案
Is
extern "C"
required also for linking global variables used in Cpp file to the one defined in a c file?
便携,是的。
您可能会发现省略 extern "C"
对您的编译器有效(例如,GCC,它不会在全局命名空间中破坏 C++ 变量名称),但这不是您可以做到的依赖于所有编译器。
Does the C compiler also changes the name of variables??
这取决于编译器(具体来说,取决于它使用的 ABI)。语言标准没有指定语言级名称如何映射到链接器符号,因此不同的编译器可以使用不同的名称修改方案。
关于c++ - 是否还需要 extern "C"才能将 Cpp 文件中使用的全局变量链接到 cfile 中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27938862/