资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

在C++程式中调用被C编译器编译后的函数,为什么要加extern "C"声明?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

在C++程式中调用被C编译器编译后的函数,为什么要加extern   "C"声明?

网友回答:

发表者:kevin_wang

c编译的时候一般在函数名前面加一个_,c++不知道加个什么,反正肯定不一样,如果在c++中引用已经编译好的c模块,需要使用extern   "C"告诉c++编译器,这个模块中的函数采用了_+函数名的形式。

发表者:ywfscu

c++函数特征为函数名+参数类型+参数个数,这样编译器把每一个c++函数转换为内部表示。就可以实现函数的多态,因为c的没有这样的函数特征,所以c没有函数重载。  
  再罗嗦一句,c++中函数特征不包括返回类型,所以不能有只区别返回类型的函数重载!

发表者:huiguo309

个人愚见:编译器在编译程序是都会把函数名转换成编译器的内部名称,在链接时通过函数的内部名称来查找函数的定义,由于C编译器和C++编译器转换函数名称的方法不同,所以要告诉编译器函数名的转换方法才能在链接程序时找到函数的定义。


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved