Erweitern makro in string literal
Was ich versuche zu tun ist, um #define
ein makro:
#define a(2)
und später verwenden Sie es in einem string-literal: string = "a";
.
Möchte ich, dass die Zeichenfolge interpretiert, nicht als string, sondern um den Wert der a
, also 2. Es gelang mir nicht, kann jemand helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dann
STRINGIFY(A)
geben Sie"2"
. Sie können verketten es mit anderen string-Literale, indem Sie Sie nebeneinander."I have the number " STRINGIFY(A) "."
gibt Sie"I have the number 2."
.STRINGIFY(I have the number A)
(ich bin mir nicht sicher über den Punkt am Ende).Nein, man kann nicht makro-expansion in string-literalen (d.h. dass der Präprozessor nach innen zu schauen Literale für Makros zu erweitern).
Können Sie eine makro-expansion zu produzieren, ein string-literal, beginnend mit dem stringify-operator (
#
). Aber das ist eine andere Sache.