Variablen in Makros auflösen
-
Hallo zusammen,
ich habe folgendes (wahrscheinlich triviales) Problem, habe in 2 Büchern allerdings nichts gefunden.
Und zwar habe ich ein Makro definiert:
#define TOK(t1,t2) t1##t2;
Dieses hängt die zwei Parameter aneinander. Ich würde diesem TOK-Makro nun allerdings gerne einen Variablennamen übergeben, der dann aufgelöst wird.
Beispiel:
TOK(FOOBAR,id): Für id=1 soll dann das Ergebnis etwa FOOBAR1 lauten und nicht wie bisher FOOBARid.
Vielen Dank!
-
mattsches schrieb:
TOK(FOOBAR,id): Für id=1 soll dann das Ergebnis etwa FOOBAR1 lauten und nicht wie bisher FOOBARid.
Das kannst du nur erreichen, indem du die 1 übergibst.
-
Die Makros bearbeitet der Präprozessor, und zwar zur Compilezeit. Da ist der Wert von id noch unbekannt (außer es ist selbst ein Makro). Einen Bezeichner aus dem Wert von id zu erzeugen, kann also nicht gehen.
Du könntest zwar zur Laufzeit einen String "FOOBAR1" aus dem Wert von id erzeugen, aber zur Laufzeit sind die Bezeichner schon wieder aus dem Programm verschwunden und durch relative Adressen/whatever ersetzt, also auch nicht, was du willst.
Was hast du eigentlich vor?