Hello, I'm using KEIL V5.10 with STM32F103. My project has some enum type variables, such as typedef enum { a0 = 0, a1, a2, an } aType;
In source file, I used conditional compile statements:
#if (an > 0) xxxx #endif
But the body inside was not compiled whatever an is higher than zero, I don't know why.
An array can be correctly complied if I used an as array's length, such as
static uint16_t u16Buf[an];
There is no warning or error after compilation.
Anyone knows why the conditional compilation does not work?
Thanks!
@Per Westermark
Yes, you are right, I use "an" as the number of enum parameters, and I did like you did in my project and there was no problem.
My problem is whatever "an" is, the conditional compilation always thinks an=0, so statements does not compiled, because gcc does not support enum type in conditional compilation directives.