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?