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

Fermé
PasDeBol - 2 juil. 2004 à 13:55
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 2 juil. 2004 à 14:30
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

blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
2 juil. 2004 à 14:08
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
Merci beaucoup blurk !
0
Dans mes souvenirs, il n'y avait pas de NULL à la fin.
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
2 juil. 2004 à 14:30
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