#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.

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