打印

请教一个头文件和宏定义的问题

[复制链接]
627|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
车水马龙|  楼主 | 2018-7-3 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
宏定义多了,我想用一个头文件来存放这些宏定义,然后各.c文件里插入这个头文件。

例如,在AAA.c里我要用一个宏定义#define xxx 0,直接在开头加上该定义就行。或者我在AAA.h头文件里宏定义,然后在AAA.c文件里引用头文件就行。
如果,我在BBB.h头文件里定义了该宏,在AAA.c里,如果我先引用BBB.h再引用AAA.h是可以使用该宏的,如果反过来,在AAA.c里先引用AAA.h再引用BBB.h编译时提示该宏没有定义。

这个现象是否与文件编译的顺序有关?这个如何克服?

我现在的想法是:我写一个Driver.h头文件,里面放一些宏,还有一些公共变量、公共函数。然后在stm32f10x.h文件的末尾 #include "Driver.h"。
这样,我其他模块的头文件里肯定会有#include "stm32f10x.h",这样就把Driver.h也包含进去了。

但是现状就是Driver.h里的宏编译不能通过,但是Driver.h里申明的变量和函数都可以通过编译被其他文件里调用呢~

不解~  有个办法,就是在AAA.c文件的最开始的地方引用Driver.h头文件。但是我觉得有点麻烦,有点不爽~

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

474

主题

476

帖子

0

粉丝