Posso visualizzare il valore di un enum con printf()?

Posso visualizzare il valore di un enum con printf()?


Esiste un one-liner che mi consente di emettere il valore corrente di un enum?


Risposte:


Come stringa, no. Come numero intero, %d.


A meno che tu non conti:


static char* enumStrings[] = { /* filler 0's to get to the first value, */
"enum0", "enum1",
/* filler for hole in the middle: ,0 */
"enum2", "enum3", .... };
...
printf("The value is %s\n", enumStrings[thevalue]);

Questo non funzionerà per qualcosa come un'enumerazione di maschere di bit. A quel punto, hai bisogno di una tabella hash o di un'altra struttura di dati più elaborata.