English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lezioni di base del linguaggio C

Controllo di flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

C altre

Manuale di riferimento del linguaggio C

Utilizzo e esempio della macro della libreria C va_arg()

Libreria standard C - <stdarg.h>

Macro della libreria C type va_arg(va_list ap, type) Recupera la lista dei parametri della funzione di tipo type del prossimo argomento. Non può determinare se l'argomento recuperato è l'ultimo argomento passato alla funzione.

Dichiarazione

Di seguito è riportata la dichiarazione della macro va_arg().

type va_arg(va_list ap, type)

parametro

  • ap -- Questo è va_list Un oggetto di tipo, che memorizza informazioni riguardanti l'argomento extra e lo stato di recupero. L'oggetto deve essere inizializzato per la prima volta chiamando va_start.

  • type -- Questo è un nome di tipo. Il nome di tipo viene utilizzato come tipo dell'espressione estesa da questa macro.

Valore di ritorno

Questa macro restituisce il prossimo argomento extra, che è un'espressione di tipo type.

Esempio online

Esempio di utilizzo della macro va_arg().

#include <stdarg.h>
#include <stdio.h>
int sum(int, ...);
int main()
{
   printf("10 e 34 somma = %d\n", sum(2, 10, 34));
   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;
}

Compiliamo e eseguiamo il programma sopra riportato, il quale produrrà il seguente risultato:

La somma di 10 e 34 è uguale a 44

Libreria standard C - <stdarg.h>