0
sagen, ich habe folgendesWie wird der Name eines Makros in eine literale Zeichenfolge umgewandelt, wenn sich das Makro in einem struct-Array befindet?
#define STR(x) #x
#define ONE 1
#define TWO 2
typedef struct
{
int item;
char * name;
}bag_t;
bag_t my_bag[] =
{
{ONE, ""};
{TWO, ""};
}
ich den Namen des Makros auf den Namen Variable so etwas wie dies hinzufügen möchten:
my_bag[1].name = STR(my_bag[1].item);
, die offensichtlich nicht funktioniert, da es nicht erweitert. Wie kann das Problem umgehen?
Gibt es Gründe, warum Sie nicht Aufzählungen verwenden? Dann würde das STR-Makro funktionieren, wie Sie es wollen. – Lundin
Was Sie suchen, heißt "X-Makros", manchmal mit Bindestrich. Es gibt sogar ein Tag [tag: x-macros] für das Thema. Ich bezweifle, dass jede Frage über X-Makros damit markiert wurde, aber es gibt Ihnen einen Ausgangspunkt. –