7
To jest wadliwy kodwklejanie Error „” Hello „” i „” WORLD „” nie daje prawidłowy przerób żeton
#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"));
}
Dlaczego daje ten błąd? Jak mogę to naprawić?
EDIT
To, co próbuję zrobić
#define TAG "TAG"
#define PRE CAT(CAT("<",TAG),">")
#define POS CAT(CAT("</",TAG),">")
#define XML CAT(CAT(PRE,"XML SOMETHING"),POS)
następnie
printf(XML);
co odnosisz do "jednego tokena"? jak mogę połączyć z preprocesorem? – trucos
@trucos: Przeczytaj ostatnie zdanie odpowiedzi. Tutaj naprawdę nie ma potrzeby tworzenia makra; kompilator już nie tworzy konkatenacji dla ciebie. – cHao
Jeśli nie chcę makra, nie będę pytać, moje pytanie brzmi: jak to zrobić z makrem =). Być może nie jest to możliwe – trucos