extern c的作用

   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符号。知道这些,我们在写程序时,也可以模拟去这样写头文件之类的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值