#include <stdio.h>
#define COLORDEFINE \
X(Red) \
X(Green) \
X(Blue)
#define X(a) Color##a,
enum{ COLORDEFINE };
#undef X
#define X(a) #a,
static char *ColorStrings[] = { COLORDEFINE };
#undef X
#define X(a) char *a;
typedef struct{ COLORDEFINE }ColorStruct;
#undef X
int main()
{
#define X(a) ColorStrings[Color##a],
ColorStruct Bar = { COLORDEFINE };
#undef X
printf(Bar.Blue);
printf("\n");
printf(ColorStrings[ColorBlue]);
printf("\n");
return 0;
}