Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/09/2013, 16:36
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Duda con preprocesadores

No se si te ayudaré pero te copio la definicion del operador #

Código C:
Ver original
  1. The # (single number sign) operator converts a parameter of a function-like macro into a character string literal.

Segun entiendo textualiza lo que envias como argumento en vez de los datos que contiene. La prueba está en que si envias un texto con comillas añade la barra para indicar comillas dentro de texto. No se si lo he leido por ahi o lo he soñado pero algo me suena acerca de que no se puede enviar textos en forma de variables a las macros a menos que uses las funciones de tratamiento de texto:

Código C:
Ver original
  1. #define SGET(bff, y) sprintf(bff, "GET /pdf/carpeta-operaciones-cambiarias-%s", y)
  2.  
  3. char bff[256], startwith[] = "test";
  4.  
  5. SGET(bff, startwith);
  6. printf(bff);

Y creo que precisamente esa solucion es la que intentas evitar :)

Saludos
vosk