7
Este es el código defectuosoerror pegar "" HOLA "" y "" MUNDO "" no da una señal válida preprocesamiento
#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"));
}
¿Por qué se da ese error? ¿Cómo podría solucionarlo?
EDITAR
Esto es lo que estoy tratando de hacer
#define TAG "TAG"
#define PRE CAT(CAT("<",TAG),">")
#define POS CAT(CAT("</",TAG),">")
#define XML CAT(CAT(PRE,"XML SOMETHING"),POS)
continuación
printf(XML);
¿A qué se refiere con "un solo token"? ¿cómo puedo hacer la concatenación con el preprocesador? – trucos
@trucos: Lee la última oración de la respuesta. Realmente no hay necesidad de una macro aquí; el compilador ya hace concatenación por ti. – cHao
si no quiero una macro que no voy a preguntar, mi pregunta es cómo hacerlo con un macro =). Tal vez no sea posible – trucos