Preprocessor directives can appear anywhere, as long as they're the first non-whitespace token on the line. Accordingly, you can't write
int i; #define ThisIsntLegal SinceItsNotAtTheStart
But this would be:
int i;
#define Woohoo ThisIsLegal
Hope this helps!
C11 Standard (N1570, ISO/IEC 9899:201x) (Relevant section: s6.10 Prerocessing Directives, page 160)