Latest web development tutorials

C biblioteca de macros - va_start ()

C biblioteca estándar - <stdarg.h> C biblioteca estándar - <stdarg.h>

descripción

biblioteca de C macrovacío va_start (va_list ap, last_arg) variable apinicializado, seva_argy macrosva_endse utilizan juntos.last_arg pasado a la función es el último parámetro fijo conocido, los parámetros anteriores suspensivos.

Esta macro debe ser llamado antes de usarva_arg y va_end.

declaración

Aquí está el va_start () instrucción de macro.

void va_start(va_list ap, last_arg);

parámetros

  • ap - es un objeto de va_listtipo que se utiliza para almacenar parámetros adicionales a través de lava_argobtener la información necesaria.
  • last_arg - última función conocida parámetro fijo que se le pasa.

Valor de retorno

NA

Ejemplos

El siguiente ejemplo demuestra el va_start () Uso de macros.

#include<stdarg.h>
#include<stdio.h>

int sum(int, ...);

int main(void)
{
   printf("10、20 和 30 的和 = %d\n",  sum(3, 10, 20, 30) );
   printf("4、20、25 和 30 的和 = %d\n",  sum(4, 4, 20, 25, 30) );

   return 0;
}

int sum(int num_args, ...)
{
   int val = 0;
   va_list ap;
   int i;

   va_start(ap, num_args);
   for(i = 0; i < num_args; i++)
   {
      val += va_arg(ap, int);
   }
   va_end(ap);
 
   return val;
}

Vamos a compilar y ejecutar el programa anterior, lo que resultará en lo siguiente:

10、20 和 30 的和 = 60
4、20、25 和 30 的和 = 79

C biblioteca estándar - <stdarg.h> C biblioteca estándar - <stdarg.h>