#define and enum compiler error

westfw:
Why not?
Because "#define symbols" are converted by the pre-processor before the compiler gets to look at the code. You can do other variations, or you might have a different definition of "#define symbol", but that's the way I see it:

#define PREPROC_SYMBOL 0

#define PREPROC_SYM2 foo_bar

enum foo {
ENUM_SYMBOL = PREPROC_SYMBOL;  /* OK /
PREPROC_SYM2 = 1;  /
OK /
PREPROC_SYM2 = PREPROC_SYMBOL;  /
OK /
PREPROC_SYMBOL = 2;  /
NOT OK */
...  more
};




There should not be semicolon after each "symbol line" , just comma. 

BTW is there a real / special name for symbols used in enum?