Bonjour,
Je voulais savoir, si on ne fournit pas d'argument dans la liste variable d'une fonction (ce qui n'est en générale pas une obligation), s'il y'avait un moyen de savoir si des arguments on été passés ou non.
Merci
Bonjour,
Je voulais savoir, si on ne fournit pas d'argument dans la liste variable d'une fonction (ce qui n'est en générale pas une obligation), s'il y'avait un moyen de savoir si des arguments on été passés ou non.
Merci
Aucun moyen automatique. Le rôle du dernier paramètre formel avant les paramètres variables est précisément de renseigner la fonction sur le nombre (et éventuellement, le type) de paramètres attendus. C'est à l'appelant de faire ce qu'il faut.Envoyé par CSoldier
Cependant, la méthode de la sentinelle peut fonctionner si l'appelant ne fait pas n'importe quoi.
Par exemple (Le paramètre attendu est de type char * et la sentinelle est NULL) :
utilisé comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part void print (int, ...);
Evidemment si on fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 print (0, NULL); print (0, "Hello", NULL); print (0, "Hello", "World", NULL);
le comportement est indéfini...
Code : Sélectionner tout - Visualiser dans une fenêtre à part print (0, "Hello", "World");
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager