When dealing with the C preprocessor (i.e. all that #... stuff) order matters.
e.g.
/* main.c */
#define MYVALUE 1234
#include <mylibrary.h>
In this case mylibrary.h would know MYVALUE, but in the following case it wouldn't
/* main.c */
#include <mylibrary.h>
#define MYVALUE 1234
By VERY careful though! in the first case mylibrary.h knows the value of MYVALUE when compiling main.c. BUT, mylibrary.h would not know the value of MYVALUE when compiling mylibrary.c (or any other file). This is why, as a rule of thumb*, #define's only live in header files. E.g.
/* myvalue.h */
#define MYVALUE 1234
/* mylibrary.h */
#include <myvalue.h>
#define NICEVALUE (MYVALUE*2)
And then both main.c and mylibrary.c can include mylibrary.h, and get the same value for MYVALUE.
P.S.
* as a rule of thumb you should always think before applying rules of thumb.