2009-11-11 15 views

Respuesta

8

necesita una versión independiente que trabaja con listas de argumentos explícitos:

void vfunc(int x, va_list args) 
{ 
    /* do stuff */ 
} 

void func2(int x, ...) 
{ 
    va_list arg; 

    va_start(arg, x); 
    vfunc(x, arg); 
    va_end(arg); 
} 

Ésta es la razón por la que hay funciones estándar como vprintf().

+0

Esto me ayudó a evitar la duplicación de código; ¡gracias! – Arun

0

que se añaden a "descansar" respuesta:

va_start (3) página hombre tiene explicación decente cómo trabajar con objetos va_list incluyendo buen ejemplo.

También la página printf (3) contiene un ejemplo aún mejor de la infraestructura de llamadas basada en va_list alrededor de vsnprintf (3) (puede acceder a esta página utilizando cualquiera de las variantes de printf()).

Cuestiones relacionadas