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

C++调用C函数,为什么要加extern "C"?

2015-01-26 14:59 435 查看
C++调用C函数,为什么要加extern
"C"? 2011-08-02 00:14:28

分类: C/C++

在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"?

C++语言支持函数重载,C语言不支持函数重载,函数被C++编译器编译后在
库中的名字与C语言的不同,假设某个函数原型为:

void foo(int x, inty);

该函数被C编译器编译后在库中的名字为:

_foo

而C++编译器则会产生像:

_foo_int_int

之类的名字。为了解决此类名字匹配的问题,C++提供了C链接交换指定符号 extern "C"。

eg:

#ifdef __cplusplus

#if __cplusplus

extern "C" {

#endif

#endif

...

...

...

#ifdef __cplusplus

#if __cplusplus

}

#endif

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐