Dies ist der fehlerhafte CodeFehler Einfügen „“ hallo „“ und „“ WORLD „“ eine gültige Vorverarbeitung Token
#include<stdio.h>
#define CAT_I(A, B) A ## B
#define CAT(A, B) CAT_I(A,B)
void main (void)
{
printf(CAT("HELLO","WORLD"));
}
Warum es nicht, dass Fehler gibt geben? Wie könnte ich es reparieren?
EDIT
Dies ist, was ich
#define TAG "TAG"
#define PRE CAT(CAT("<",TAG),">")
#define POS CAT(CAT("</",TAG),">")
#define XML CAT(CAT(PRE,"XML SOMETHING"),POS)
dann
printf(XML);
was bezeichnen Sie mit "einem einzelnen Token"? Wie kann ich eine Verkettung mit dem Präprozessor durchführen? – trucos
@trucos: Lesen Sie den letzten Satz der Antwort. Hier ist wirklich kein Makro nötig. Der Compiler führt bereits eine Verkettung für Sie durch. – cHao
Wenn ich kein Makro möchte, würde ich nicht fragen, meine Frage ist, wie man es mit einem Makro macht =). Vielleicht ist es nicht möglich – trucos