Intro :
Il peut être utile de passer un nombre indéfini de paramètres à une fonction.
Il faut inclure au minimum un paramètre obligatoire. Ensuite on peut passer un nombre indéfini d’arguments à la fonction.
Exemple :
void nomFonction(int parametreA, ...);
Les trois petits points (…) indique au compilateur que la fonction peut prendre plusieurs arguments.
Il faut inclure <stdarg.h> pour accéder aux fonctions et macros de manipulation des paramètres variables.
On doit indiquer en paramètre le nombre d’arguments passés par cette fonction ! (ici « int n »)
#include <stdarg.h>
void f (int n, ...)
{
va_list va;
va_start (va, n);
for (unsigned int i = 0; i < n; i++)
{
char* sArgName = va_arg(va, char*);
}
va_end (va);
}
Ici on récupère des variables de type char* (chaine de caractères).
Résumé :
Les fonctions qui peuvent prendre un nombre variable d’arguments ne sont pas toujours utilisées mais peuvent toujours être utiles.
