[技术问答] KEIL 文件重包含问题

[复制链接]
1959|9
 楼主| kaizi99998 发表于 2018-9-14 18:14 | 显示全部楼层 |阅读模式
45495b9b88d69ff2e.png

又遇到疑问了,求助!

这是我在官方例程基础上更改的工程,现在一切正常,没有警告和错误,仿真OK,疑惑的是在PROJECT栏中的.c文件包含的.h头文件有好多重名的,我已经把所有.h头文件用#ifndef / #define / #endif 预处理命令处理了。

有没有高手知道是什么问题导致的,有什么影响。谢谢啦……
643757107 发表于 2018-9-14 18:33 | 显示全部楼层
.c和.h是配套存在的。都要包含进去。
734774645 发表于 2018-9-14 19:27 | 显示全部楼层
意思是多个文件都包含了同样的头文件?
 楼主| kaizi99998 发表于 2018-9-14 19:33 | 显示全部楼层
734774645 发表于 2018-9-14 19:27
意思是多个文件都包含了同样的头文件?

一个.c包含了一个.h文件多次,图中有main.c文件中包含了 n76e003.h两次,还有其他文件也是这样。
734774645 发表于 2018-9-14 19:35 | 显示全部楼层
kaizi99998 发表于 2018-9-14 19:33
一个.c包含了一个.h文件多次,图中有main.c文件中包含了 n76e003.h两次,还有其他文件也是这样。 ...

重复包含了你76e003.h
是吧?
重复也没事,不影响编译,因为重复的内容里面没有函数,都是宏定义的地址。

评论

就是很奇怪,不合逻辑,明明做了防止重复包含处理的。  发表于 2018-9-14 22:14
huangcunxiake 发表于 2018-9-15 18:37 | 显示全部楼层
看原子哥的教程啊,PDF,里面有讲怎么建工程。
xinxianshi 发表于 2018-9-15 22:29 | 显示全部楼层
Keil比较奇葩,两个地方都要设置:路径和文件包含。
Prry 发表于 2018-9-16 21:19 | 显示全部楼层
头文件只放声明,不放定义。
zhao_alan 发表于 2025-8-27 17:33 | 显示全部楼层
a.h\b.h\c.h\ d.h(无.c文件)
a.h包含d.h
b.h包含d.h
c.h包含a.h\b.h
c.h包含了2个d.h   
出现该原因是 a.h文件和d.h文件在同一文件夹,c.h文件和b.h文件在同一文件夹。
将d.h文件c.h文件c.c文件放同一个文件夹,或将a.h文件与b.h文件放同一个文件夹即可。
头文件重复包含.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部