On Fri, Mar 21, 2008 at 04:37:40PM -0300, personaje wrote:
> Hola,
> 
>    Estoy experimentando con una macro variadica, pero no puedo
> encontrar información o ejemplos de como descomponer __VA_ARGS__.
>    Me interesa poder obtener uno de los argumentos extra en dicha
> macro. P.ej. __VA_ARGS__[0] __VA_ARGS__[1] o algo así. O se trabaja
> tipo listas con cabeza y cola y lo voy descomponiendo así? cómo se
> podría hacer?

No lo descompones dentro de la macro, sino que usas variadic functions
(no se como se diria en castellano =). No se puede acceder a los
miembros que los componen, al menos no dentro del estandar C99.

En http://en.wikipedia.org/wiki/Variadic_macro hay una explicacion breve
y clara de como es el asunto.

Basicamente sirve para casos tipo:

  void realdprintf (char const *file, int line, char const *fmt, ...); 
  #define dprintf(...) realdprintf(__FILE__, __LINE__, __VA_ARGS__)

en donde reemplazas la expansion, y despues dentro de realdprintf()
manejas los parametros variables como en cualquier variadic function.

Gracias,
                Alberto

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a