免费注册 查看新帖 |

Chinaunix

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

请教一个GCC链接的小问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-10 10:01 |只看该作者 |倒序浏览
用GCC编译代码时,在链接过程中,好像不会对实际的函数实现中的参数个数进行检查,有没有啥方法可以让其检查一下的?

就是比如  我在 a.c中有函数 func1的实现,func1的定义是  int func1(int, int),
函数b.c中用到了func1,假如b.c用到的头文件中func1的声明是func1(int),  这样就导致b.c中用的func1的声明跟其实现是不一样的,
这样链接过程中怎么样让其检查出来呢?  gcc的版本是3.4.4

论坛徽章:
0
2 [报告]
发表于 2010-06-10 10:15 |只看该作者
这样子.o文件都编不出来吧,,还没走到链接的部分就要报错吧.

论坛徽章:
0
3 [报告]
发表于 2010-06-10 10:40 |只看该作者
-c应该可以通过吧
-o应该发现了重复定义

论坛徽章:
0
4 [报告]
发表于 2010-06-10 10:44 |只看该作者
编译的时候就报参数不对吧

论坛徽章:
0
5 [报告]
发表于 2010-06-10 11:52 |只看该作者
int func1(int, int),
int func1(int),
是两个函数

论坛徽章:
0
6 [报告]
发表于 2010-06-10 12:26 |只看该作者
链接会报func1(int)这个外部函数未定义
编译只针对当前.c文件,当然不知道func1(int)在没在别的.c文件中实现了,自然不报错。链接时就盘点算总账了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP