免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 42149 | 回复: 6

[C] 新手求教 [复制链接]

论坛徽章:
0
发表于 2016-07-26 22:13 |显示全部楼层
本帖最后由 king_linux001 于 2016-07-26 23:06 编辑

在linklist.h文件里声明了函数,linklist.c文件实现linklist.h里面声明的函数,linklist.c包含了linklist.h。后在main.c里面包含了linklist.c。在编译的时候没错,执行的时候出现重复定义函数的错误,这是为什么?
main.c包含了linklist.c在链接的时候不会把linklist.h里面的内容重复部分去掉么?这里面是怎么样的一种情况?

论坛徽章:
1
2015亚冠之迪拜阿赫利
日期:2015-11-03 10:08:57
发表于 2016-07-27 09:50 |显示全部楼层
执行的时候不会出错,链接的时候出错的吧!
使用 gcc main.c 的时候不会出错,使用 gcc main.c linklist.c 的时候才会出错。

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-07-27 11:19 |显示全部楼层
cpp的#include只是简单的文件替换和宏展开,不存在”自动去掉重复部分“的黑魔法。(除非通过#ifdef避免了重复包含)。

不过楼主没有提到在main.c里面包含list.h,那貌似不应该有问题。
估计是包含了吧,要不然哪来的重复定义呢?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2016-07-27 12:02 |显示全部楼层
main.c里面包含了linklist.c
这是万恶之源

论坛徽章:
0
发表于 2016-07-27 19:46 |显示全部楼层
我用了#ifdef避免了重复包含,main.c里面没有包含linklist.h只包含了linklist.c,执行的时候出现重复定义,我就是想问为什么用了避免重复包含还是发生重复定义?怎么解释?回复 3# nswcfd


   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-07-28 18:25 |显示全部楼层
执行的时候?方便的话贴一些错误输出吧?

论坛徽章:
72
20周年集字徽章-20	
日期:2020-10-28 14:04:30操作系统版块每日发帖之星
日期:2016-07-13 06:20:0015-16赛季CBA联赛之广夏
日期:2016-07-10 09:04:02数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00操作系统版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-04 06:20:00数据库技术版块每日发帖之星
日期:2016-07-03 06:20:00操作系统版块每日发帖之星
日期:2016-07-03 06:20:00数据库技术版块每日发帖之星
日期:2016-07-02 06:20:00操作系统版块每日发帖之星
日期:2016-07-02 06:20:00
发表于 2016-07-29 14:08 |显示全部楼层
要include头文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP