Easy way to use variables of enum types as string in C?

前端 未结 19 2322
太阳男子
太阳男子 2020-11-22 08:47

Here\'s what I am trying to do:

typedef enum { ONE, TWO, THREE } Numbers;

I am trying to write a function that would do a switch case sim

19条回答
  •  一个人的身影
    2020-11-22 09:05

    I know you have a couple good solid answers, but do you know about the # operator in the C preprocessor?

    It lets you do this:

    #define MACROSTR(k) #k
    
    typedef enum {
        kZero,
        kOne,
        kTwo,
        kThree
    } kConst;
    
    static char *kConstStr[] = {
        MACROSTR(kZero),
        MACROSTR(kOne),
        MACROSTR(kTwo),
        MACROSTR(kThree)
    };
    
    static void kConstPrinter(kConst k)
    {
        printf("%s", kConstStr[k]);
    }
    

提交回复
热议问题