是否还需要extern"C"来将Cpp文件中使用的全局变量链接到cfile中定义的变量?

kbh*_*uka 2 c c++ extern

是否还需要extern"C"来将Cpp文件中使用的全局变量链接到ac文件中定义的变量?

它用于连接C++文件中的函数,该文件在C文件中引用,因为C++文件中的函数名称名称被破坏.C编译器是否也改变了变量的名称?

Mik*_*our 5

是否extern "C"还需要将Cpp文件中使用的全局变量链接到ac文件中定义的变量?

可以,是的.

您可能会发现遗漏extern "C"对您的编译器起作用(例如,GCC,它不会破坏全局命名空间中的C++变量名),但这并不是您可以依赖所有编译器的东西.

C编译器是否也改变了变量的名称?

它取决于编译器(具体来说,取决于它使用的ABI).语言标准没有指定语言级名称如何映射到链接器符号,因此不同的编译器可以使用不同的名称修改方案.

  • 虽然gcc不会破坏全局命名空间中的C++变量名,但我遇到过Visual C++**. (2认同)