If I have a C file foo.c and while I have given -DMACRO=1 as command line option for compilation. However, if within the header file also I hav
-DMACRO=1
You'll get an error for macro redefinition. Obviously -D gets defined first (before the source file is parsed rather than after) or it would have no use. The #define is then a redefinition.
-D
#define