宏定义多了,我想用一个头文件来存放这些宏定义,然后各.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头文件。但是我觉得有点麻烦,有点不爽~ |