Ich muss ein Aufzählungselement (seinen Wert, nicht den Bezeichner) in eine Zeichenfolge konvertieren. Ich habe Folgendes versucht, das für ein MACRO (TYPE_A) funktioniert, aber nicht für einen Enum-Wert (typeA). Dies ist meiner Meinung nach ein wenig seltsam.
Haben Sie eine Idee, wie man das macht?
#define _tostr(a) #a
#define tostr(a) _tostr(a)
typedef enum _SPECIAL_FOLDER_ID {
typeA = 3,
typeB = 4,
} SPECIAL_FOLDER_ID;
#define TYPE_A 3
int main() {
//this is working, but the information is a macro (TYPE_A)
printf("The string is " tostr(TYPE_A) ".\n");
//this is not working for typeA (defined in an enumeration)
printf("The string is " tostr(typeA) ".\n");
return 0;
}
Die Ausgabe ist:
The string is 3.
The string is typeA.
Ich muss den Code in irgendeiner Weise ändern, damit die zweite Zeile der Ausgabe "Die Zeichenfolge ist 3" lautet.
Gracias.
PS: Ich möchte den Wert nicht mit printf drucken. Ich brauche eine statische Zeichenfolge, die diesen Wert enthält. Ich verwende printf nur, um das Ergebnis zu testen...