Перечисления представлены как целые значения, поэтому вы не можете присвоить значения типа char*
.Однако вы могли бы поддерживать отдельный массив строк, соответствующих перечисляемым значениям:
typedef enum
{
ADD = 0,
PLUS = 1, MINUS = 2, MUL = 3, DIV = 4, MOD = 5,
AND = 6, OR = 7, NOT = 8,
BROKEN_FOO = 9
} foo;
const char* fooStrings[] = {
"+","+","-","*","/","%","&","|","^",NULL
};
int main() {
printf("OR (%d): %s\n", OR, fooStrings[OR]);
}