设为首页 加入收藏

TOP

extern ¨C¨对C++和C混合编译的支持
2014-11-24 11:50:17 来源: 作者: 【 】 浏览:0
Tags:extern 混合 编译 支持

C关键字extern除了对全局变量和函数的修饰作用外,在C++和C的混合编译中也承担着重要角色。初次接触混合编译的程序员经常遇到的一个问题就是 在C++环境下使用C函数的时候,常常出现编译器无法找到C函数定义的链接错误。其原因就是因为C++语言为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称(mangled name)。此时对C函数用extern “C”进行链接指定,告诉编译器,按照C语言的命名习惯在库中查找函数。


经常写成以下格式:
#ifdef __cplusplus
extern "C"{
#endif
 …
 …
#ifdef __cplusplus
}
#endif


extern "C" 是C++的语法, 在C语言中不能直接引用,否则编译报错。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇从源码中Activity 的定义来理解 A.. 下一篇C语言:结构体测试程序 -- 学生信..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)