Il peut être interressant d'avoir des fonctions dont on ne connait pas toujours le nombre exact de paramètres à l'exécution (ex : printf et scanf). Lorsque le dernier paramètre formel d'une fonction est une ellipse (trois points de suspension), nous sommes dans le cas d'un nombre variable de paramètres. la bibliothèque stdarg.h contient les déclarations et définitions du type va_list et des fonctions va_start, va_arg et va_end. Avec ceux-ci, les fonctions peuvent traiter les paramètres. Cependant, elle doivent toujours conna^tre le nombre et le type de ces paramètres.
#include <iostream.h> #include <stdarg.h> void afficheEntiers(int nbParam, ...) { va_list parametres ; va_start (parametres, nbParam) ; for (int i=0 ; i < nbParam ; i++) cout << va_arg(parametres, int) << endl ; va_end(parametres) ; } int main(void) { afficheEntiers(3,6,24,2) ; afficheEntiers(1,2) ; return 0 ; }la variable parametres est utilisée pour la sélection des paramètres et ne devrait être manipulée que par des fonctions de stdarg.h. va_start initialise le traitement et doit être appelée avant toutes les autres. va_arg renvoie la valeur du paramètre réel suivant (dans la liste d'arguments) et va_end doit être appelée en fin de traitement afin de revenir dans un état normal.