Dans une déclaration de fonction C, que fait «…» comme dernier paramètre?

Souvent, je vois une fonction déclarée comme ceci:

void Feeder(char *buff, ...) 

que signifie?

    il permet un nombre variable d’arguments de type non spécifié (comme le fait printf ).

    vous devez y accéder avec va_start , va_arg et va_end

    voir http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.html pour plus d’informations

    Fonctions variadiques

    Les fonctions variadiques sont des fonctions qui peuvent prendre un nombre variable d’arguments et sont déclarées avec des points de suspension à la place du dernier paramètre. Un exemple d’une telle fonction est printf .

    Une déclaration typique est

      int check(int a, double b, ...); 

    Les fonctions variadiques doivent avoir au moins un paramètre nommé. Ainsi, par exemple,

      char *wrong(...); 

    n’est pas autorisé en C.

    Cela signifie qu’une fonction variadique est en cours de déclaration.

    Les trois points “…” sont appelés des points de suspension. Leur utilisation dans une fonction en fait une fonction variadique . Les utiliser dans une déclaration de fonction signifie que la fonction acceptera un nombre arbitraire de parameters après ceux déjà définis.

    Par exemple:

     Feeder("abc"); Feeder("abc", "def"); 

    sont tous des appels de fonction valides, mais ce qui suit ne serait pas:

     Feeder(); 

    fonction variadique (parameters multiples)

    wiki

     #include  double average(int count, ...) { va_list ap; int j; double tot = 0; va_start(ap, count); //Requires the last fixed parameter (to get the address) for(j=0; j 

    Les fonctions avec ... comme dernier paramètre sont appelées fonctions Variadic (Cppreference. 2016). This ... est utilisé pour autoriser les parameters de longueur variable avec des types non spécifiés.

    Nous pouvons utiliser des fonctions variadiques lorsque nous ne sums pas sûrs du nombre de parameters ou de leurs types.

    Exemple de fonction variadique: Supposons que nous ayons besoin d’une fonction de sum qui renverra la sum du nombre variable d’arguments. Nous pouvons utiliser une fonction variadic ici.

     #include  #include  int sum(int count, ...) { int total, i, temp; total = 0; va_list args; va_start(args, count); for(i=0; i 

    Sortie:

    Sortie C

    Problème de pratique: Un problème simple pour pratiquer une fonction variadique peut être trouvé dans le problème de pratique de hackerrank ici

    Référence: