extern ¨C¨对C++和C混合编译的支持
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语言中不能直接引用,否则编译报错。
相关推荐
qingsongzdq 2020-02-02
qingsongzdq 2020-01-17
KilluaZoldyck 2020-01-10
lynjay 2020-01-09
lsfreeing 2020-01-09
beibeijia 2019-12-29
liuweinn 2010-09-21
Pipcie 2011-03-03
旭灿 2010-10-27
MYRENZHIBO 2019-08-28
一亩半分地 2011-10-18
徐建岗网络管理 2019-08-02
electricperi 2019-08-02
newdye 2011-01-10
makeWorks 2019-07-01
83457317 2011-02-16
Joymine 2012-08-29