westfw:
Why not?
Because "#define symbols" are converted by the pre-processor before the compiler gets to look at the code.
Yes, but that is a rather contrived example. If you have simple symbols you could use them interchangeably.
For example:
#define TEST1 1
#define TEST2 2
#define TEST3 3
#define TEST4 4
#define TEST5 5
Or:
enum {
TEST1 = 1,
TEST2 = 2,
TEST3 = 3,
TEST4 = 4,
TEST5 = 5
};
The example given in the original post didn't look as if it was in the "complex" category:
#define USB_REQ_GET_STATUS 0