Funzione variadica
Lezione 10 di 17 del corso Funzioni in C di Coddy.
In C, come in altri linguaggi di programmazione, esiste il concetto di funzione variadica, ovvero una funzione che accetta un numero illimitato di parametri.
Per usare una funzione variadica, dobbiamo prima includere il file header <stdarg.h>.
Vediamo un esempio per capire come funziona:
#include <stdio.h>
#include <stdarg.h>
int sum(int num, ...) {
va_list list;
va_start(list, num);
int sum = 0;
for (int i = 0; i < num; i++) {
sum += va_arg(list, int);
}
va_end(list);
printf("%d", sum);
}
int main() {
sum(2, 20, 30);
return 0;
}In questo esempio, la funzione sum calcola la somma di un numero variabile di valori interi.
Dichiara una variabile per contenere l'elenco degli argomenti usando la macro
<strong>va_list</strong>:va_list list;Inizializza l'elenco degli argomenti:
va_start(list, num);Dichiara una variabile per contenere la somma:
int sum = 0;Scorri tutti gli elementi, recupera ogni argomento e aggiungilo alla somma:
for (int i = 0; i < num; i++) { sum += va_arg(list, int); }Pulisci l'elenco degli argomenti al termine dei calcoli:
va_end(list);Nella funzione
<strong>main</strong>, chiama la funzione<strong>sum</strong>in questo modo:sum(2, 20, 30);
Sfida
FacileUsando una funzione variadica, crea una funzione chiamata average che calcoli e stampi la media dei voti degli studenti.
Provalo tu
#include <stdio.h>
#include <stdarg.h>
// Funzione per calcolare la media
int main() {
// Chiama la funzione variadica | Non modificare questo
average(4, 85, 90, 78, 92);
return 0;
}Tutte le lezioni di Funzioni in C
Esercitati da solo: Compilatore C online