" Tu es sur de ça ? "
Ouais, le programme suivant sur compilateur C se compile et s’exécute sans erreur:
http://codepad.org/TvoVzht9
A noter que j'ai passé deux arguments à la fonction f dans le main alors qu'il n'y a rien dans la liste de paramètres de la définition de la fonction, ça compile quand même. En revanche si je mets void dans la liste de paramètres de la définition de la fonction, ce code ne compile plus :
http://codepad.org/3HG4HPiw
L'erreur est "Line 7: error: too many arguments to function 'f'".
Sinon oui, si tu veux utiliser varargs il faut utiliser le "..." mais c'est parce que pour utiliser varargs il faut que la fonction ait au moins un argument nommé qu'il faut fournir à la fonction va_start, le problème c'est que si tu écris un truc comme :
"void f(int count);"
Alors ta fonction n'accepte qu'un seul argument, c'est pourquoi il faut rajouter le "..." après le premier argument pour spécifier que la fonction peut prendre des arguments supplémentaires.