En C : définition bizare de fonction... ;o(

PasDeBol -  
blurk Messages postés 493 Date d'inscription   Statut Membre -
J'ai récupéré des sources, et j'ai une fonction "toto" définit comme suit :
int toto(FILE *f, ...)
et plus loin, elle est utilisé comme suit :
toto(file_étoile, "chaine_de_caractères", NULL)

Quelqu'un pourrait-il m'expliquer ce que sont ces "..." dans la définition de la fonction ?!?... Merci !

PasDeBol
"Respectez la nature pour que la nature vous respecte..."

3 réponses

  1. blurk Messages postés 493 Date d'inscription   Statut Membre 160
     
    salut
    ça signifie qu'on peut lui passer autant de FILE qu'on veut

    toto(FILE1,FILE2,FILE3,FILE4,NULL);
    NULL c'est pour dire "c'est tout, y'en a plus" (enfin je pense)

    un exemple de chez stdio.h:

    printf(" %d %d %d %d", i1, i2, i3, i4);

    ici, pas besoin de NULL, Ritchie et Kernigan se sont débrouillés autrement pour écrire cette fonction
    y'a pas de limite (euh en théorie...)

    puissant le C, non?
    0
    1. PasDeBol
       
      Merci beaucoup blurk !
      0
  2. totote
     
    Dans mes souvenirs, il n'y avait pas de NULL à la fin.
    0
  3. blurk Messages postés 493 Date d'inscription   Statut Membre 160
     
    ben, dans printf on compte les % et on sait combien il y a de param, mais sinon, dans la fonction vue ci-dessus on fait une boucle jusqu'à ce que la valeur du param suivant soit NULL
    c'est une solution comme une autre
    a+
    0