免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1358 | 回复: 1
打印 上一主题 下一主题

[C++] 用C++编译器编译C程序需要注意什么问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-25 19:49 |只看该作者 |倒序浏览
我用C++编译器编译C塬程序,为什么有很多函数明明已经定义而编译器提示没有定义,而我的C程序用C编译器完全正常,

   请问各位是什么原因?
   小弟正等着就命呢,请指点密集!!

论坛徽章:
0
2 [报告]
发表于 2003-09-26 09:54 |只看该作者

用C++编译器编译C程序需要注意什么问题?

c++的函数可以重载,c++为了实现重载的这个特性,c++编译器必须以某种办法区分那些名字相同但参数不同的函数。c++通过编码把参数信息融入了最终输出的汇编符号中,比如函数 int fun(int ){ ……}g++把它的名字改装成了_Z3funi
上面“_Z”是g++对函数的固定标示,所有的函数的最终名字都带有“_Z";3表示随后的3个字符是一个标示符,fun就是源代码中的函数名,i标示带有int类型的参数。
而且c++的面向对象的特性也要求编译器以适当的方式改装函数。
由于c++对函数名字的处理,我们要调用c的函数,就必须明确的告诉c++编译器,通知他不扩展函数名:
extern "C" int fun(int);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP