Enum Value and Identifier

suggest change
/* declare items of the enum */
#define FOREACH \
      X(item1) \
      X(item2) \
      X(item3) \
/* end of list */

/* define the enum values */
#define X(id) MyEnum_ ## id,
enum MyEnum { FOREACH };
#undef X

/* convert an enum value to its identifier */
const char * enum2string(int enumValue)
    const char* stringValue = NULL;
#define X(id) if (enumValue == MyEnum_ ## id) stringValue = #id;
#undef X
    return stringValue;

Next you can use the enumerated value in your code and easily print its identifier using :

printf("%s\n", enum2string(MyEnum_item2));

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents