Quick actions

cmd+k|ctrl+k

Navigation

Languages

X-macro

Snippet info

Language

C

Visibility

public

Author

evine

Created

2016-04-03T00:32:25Z

Updated

2016-04-03T14:19:06Z

#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;
}
INFO