现在的位置: 首页 > 综合 > 正文

extern c的作用

2013年10月01日 ⁄ 综合 ⁄ 共 424字 ⁄ 字号 评论关闭

   extern  "C"表示编译生成的内部符号名使用C约定。因为  C  语言和  C++  语言的编译规则不一样,所以要告诉系统哪些函数是用  C 方式编译,哪些函数需要用  C++  方式编译。如果你不加  extern  "C"  ,在编译时,系统会提示找不到此函数。这也是为什么,我们可以在c++,使用C语言的编写的库。你可以在你的系统找到C语言的头文件,stdio.h。打开开一下,会发现有个如下几行。

#ifdef __cplusplus

extern "C"{

#endif

...

#ifdef __cplusplus

 }

#endif

这样就可以在用C++编译器链接外部符号时,告诉编译器这是用C语言编写的。然后使用C语言的内部符号约定寻址这个地址。C语言的寻址规则是

例如:int  foo(int x ,  int y);那么C语言会产生_foo符号,而C++由于要支持函数重载,大概会生成_foo_int_int符号。知道这些,我们在写程序时,也可以模拟去这样写头文件之类的。



抱歉!评论已关闭.