C++ extern "c"

本文解释了C++中使用extern C 的原因及作用,尤其是在C++与C混合编程时如何避免名称修饰导致的问题。通过示例对比了带有与未带有extern C 的编译差异。


C++ extern "c" 在线给分!

举报|2010-09-05 15:36 wscxyzklc  |  分类:C/C++  |  浏览1114次
各位大哥谁知道extern “C”究竟是什么意思,学了一年半的C/C++ 这个总是理解不了?

C连接与C++连接有什么区别?  给我一个通俗易懂的回答吧,在线给分!!

也就是说为啥子要加extern "c"
2010-09-05 21:42 网友采纳
就我的个人理解:
   extern c是指用c的编译方式编译程序,你应该是在c++代码里面看到的这句话吧,在c++里面,编译时,你定义的各个函数名都会被改成其他的名字,这样就不方便其他的语言来调用该源程序,而在c++定义函数前加一个extern c就表示用c的方式来编译代码,并且函数名不会被改变。你可义测试比较:
g++ filename.cpp -s(该源程序中函数前没加extern c,加参数-s是指生成汇编代码,方便你比较观看) 
g++ filename.cpp -s(该源程序中函数前加extern c)

通过比较你会发现,前一个fileneme.s文件中找不到你先前定义的函数了,是因为c++编译器把你的函数改名了;而后一个filename.s文件中你就能找到这个函数名。

其实在c++中定义的函数前加extern c平时并不常见,用的也不多,你可以不必专研,了解有该用法即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值