您的位置:首页 > 编程语言 > C语言/C++

在c++程序中调用被c编译器编译后的函数为什么要加extern “C”

2015-06-13 11:51 281 查看
c语言不允许函数重载,一次不涉及到同名函数参数类型不同的重载问题,而c++允许函数重载,编译器在编译函数时,c只需要记录函数的名称即可而c++不仅需要记录函数名称还需要记录函数的参数类型。

例如:

int foo(int ,int );


c编译器编译的结果函数名称应该是类似_foo这样的名称,而c++则应该是类似于_foo_int_int这样的名称。

为了解决c和c++编译器的互通问题,c++提供了c连接交换指定符号extern “C”解决名字匹配的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: