Kann ich den Wert einer Aufzählung mit printf() anzeigen?

Kann ich den Wert einer Aufzählung mit printf() anzeigen?


Gibt es einen Einzeiler, mit dem ich den aktuellen Wert einer Aufzählung ausgeben kann?


Antworten:


Als Saite, nein. Als ganze Zahl, %d.


Es sei denn, Sie zählen:


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]);

Dies funktioniert nicht für so etwas wie eine Aufzählung von Bitmasken. An diesem Punkt benötigen Sie eine Hash-Tabelle oder eine andere ausgefeiltere Datenstruktur.