Herramientas de usuario

Herramientas del sitio


varargs

¡Esta es una revisión vieja del documento!


Funciones con un número variable de parámetros

Para ello se requiere incluir el archivo de encabezados stdarg y declarar la función suma en el siguiente código:

  #include <stdio.h>
  #include <stdarg.h>
 
  int suma(int n, ...) {
    va_list ap; /* argument pointer */
    int s= 0;
    int k;
        
    va_start(ap, n); /* u es el último parámetro de la parte no variable */
    for (k= 0; k<n; k++)
      s += va_arg(ap, int);

    va_end(ap);
    return s;
  }

  int main() {
    int a= 1, b= 2, c= 3;
    printf("%d\n", suma(3, 1, 2, 3));
  }

La pseudo función va_arg se usa para extraer uno a uno los argumentos variables de la invocación. El tipos especificados deben coincidir exactamente con los tipos de la invocación. De otro modo los resultados son impredescibles.

Estudio en los

varargs.1346030167.txt.gz · Última modificación: 2012/08/27 01:16 por lmateu