您的位置首页百科问答

extern "C"

extern "C"

的有关信息介绍如下:

extern

extern "C" 是C 中的一个链接规范(linkage specification),用于指定函数或变量使用C语言的调用惯例和链接方式。 其主要作用是为了能够正确实现C++代码与其他C语言代码的相互调用。加上extern "C"后,会指示编译器这部分代码按C语言的规则进行编译和链接。

由于C++支持函数重载,因此编译器编译函数的过程中会对函数名进行名称修饰(Name Mangling),将参数类型等信息编码到最终的符号名中;而C语言并不支持函数重载,因此编译C语言代码的函数时不会进行名称修饰,一般只使用函数名作为符号名。extern "C" 构成了C++与C语言混合编程时相互调用的双向通道。该修饰符可以应用于单个函数或变量的声明,也可以应用于包含多个声明或头文件的代码块。 被声明为 extern "C" 的函数不支持函数重载。

该机制源于C++需要与大量现有C代码交互的需求,有助于逐步将C代码移植到C++。 从Visual Studio 2019开始,当指定/permissive-编译器选项时,会对extern "C"函数的参数声明进行一致性检查。

想要了解更多“extern "C"”的信息,请点击:extern "C"百科