Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > C > Les fonctions à nombre variable de paramètres > Lecture des commentaires

Les fonctions à nombre variable de paramètres

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Pseudo Commentaire
Page : 1 
Hors ligne bloom1 # Posté le 03/07/2008 à 21:08:23 - Ce membre a mis la note : 20
Mangez des pommes !
Avatar
Groupe : Membres
Bravo ! C'est vraiment LE tutoriel qui manquait sur ce site !

Merci ! 20/20 !
 
Hors ligne Zandra # Posté le 13/07/2008 à 10:45:05 - Ce membre n'a pas mis de note
tel est cru qui croyait cuire
Avatar
Groupe : Membres
Très intéressant, merci.
Hors ligne Rayman3640 # Posté le 13/07/2008 à 11:49:28 - Ce membre a mis la note : 20
Vise loin mais commence petit
Avatar
Groupe : Membres
J'en avais déjà entendu parler, mais ce n'était pas très clair. Là, c'est parfait (y'a même des exos) ! Bravo ! 20 / 20 :D

Image utilisateur
Supra-Quest, un jeu vidéo concentrant une aventure épique, un monde presque sans limites à découvrir et un système de combat novateur !

C'est le jeu vidéo que je réalise en ce moment. Cliquez pour visiter le devblog (le blog de développement) ! :)

 
Hors ligne bisthebis # Posté le 13/07/2008 à 11:56:46 - Ce membre n'a pas mis de note
Groupe : Membres
il y a une erreur : juste avant de parler de va_end tu le mets déjà dans le code avec NULL en dernier parametre :o

<lien url=" http://bisthebis.ville-virtuelle.com">Envie de voir la ville la plus pourrie du monde ?</lien>
Code : C++
1
2
QFan *moi = new QFan(100); 
// prototype : QFan(int pourcentFan);

 
Hors ligne erystel # Posté le 13/07/2008 à 12:05:04 - Ce membre n'a pas mis de note
Groupe : Membres
Salut,
il me semble que tu as fait une faute dans ton qcm.

en effet j etais tenté de dire que la reponse 3 etait la bonne, cependant, elle ne figure pas dans les reponses proposables. Et il s avere que c est la bonne dans le corrigé.

Donc Question 1 proposition de reponse inadequate, me semble t il.

Cependant, je n ai fait que lire tres vite ton tuto.
Hors ligne 64th # Posté le 13/07/2008 à 12:34:15 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Tout d'abord merci pour vos avis plutôt positifs sur le tutoriel ;) .

Ensuite quelques problèmes ont été signalés :
  • tout d'abord par bisthebis : j'enlèverai ce va_end(ap); lorsque le problème suivant sera règlé,
  • ensuite par erystel : je pense que le problème n'est pas de moi, en effet dans "Mes tutoriels" la bonne réponse est la (c) et est "La proposition 3"... de même dans "Mes tutoriels", pour la question 2, la 4ème réponse n'existe pas, il n'y a qu'un seul "...autre chose". Je vais donc essayer de règler ce problème : poster dans le forum Rapports de bugs, signaler cela à un validateur...

Image utilisateur
||| ICI, mon tutoriel sur les fonctions à nombre variable de paramètres en C...
||| ...des fonctions comme printf, fprintf...
|||
||| ICI, quelques uns de mes programmes...
||| ...Gadolinium 1, bientôt Paintix 1 et Gadolinium 2...
 
Hors ligne Zimm i48 # Posté le 13/07/2008 à 14:34:09 - Ce membre a mis la note : 16
A quand la retraite ?...
Avatar
Groupe : Membres
Tutoriel très intéressant, les exercices proposés sont bien comme ils le sont.
Attention seulement, ton QCM bogue carrément !
Citation : correction

Notice: Undefined index: good_rep in /var/www/sdz/tut.php on line 875

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/sdz/tut.php on line 875

Warning: Invalid argument supplied for foreach() in /var/www/sdz/Templates/templates/tut/qcm/reponses.compiled.php on line 26

Rendez-vous sur Test-Pedago.fr, le site d'un projet libre de logiciels pour s'entraîner sur les tables de multiplication et les conjugaisons.


Wikiversité
 
Hors ligne Tim... # Posté le 13/07/2008 à 14:44:24 - Ce membre a mis la note : 16
C'est grand un cheval...
Avatar
Groupe : Membres
Ah, les fameuses fonctions variadic (mot que je n'ai pas vu dans ce tuto d'ailleurs) !
C'était une très bonne idée de réécrire (à peu près) la fonction fprintf(). Ça permet de comprendre un peu mieux le fonctionnement d'une fonction qu'on utilise très souvent.
Même si ce tuto est bien dans l'ensemble, j'ai quand même quelques remarques.
Déjà, sur le QCM :
- La première question n'est vraiment pas claire.
- Pour la 2ème, il y a 2 fois la proposition "...autre chose"

Tu écris aussi :
Citation : Le tuto
Ainsi, cet appel à la fonction ecff ... :
Code : C
1
ecff(fichier, "Pour aller de %d a %d en %d, il faut %ah%a.", "Rennes", "Paris", "TGV", 2, 15);

Or dans ton code tu utilises '%c', pas '%d'.

Un autre truc qui me gène est que tu utilises '%a' pour int et long qui sont 2 types différents. Sur ta machine ils ont la même taille donc ça ne pose pas de problèmes mais sur une autre machine, ton code peut planter (idem pour les types float et double ). Il faudrait donc faire 2 signes différents (pourquoi pas %la pour le long ?).
Et si le type long fait 64 bits par exemple, ton buffer de 16 caractères ne va pas suffire. Il faut que la taille du buffer dépende de sizeof(long) .

Et au passage, je n'ai pas vu de #include <stdarg.h> dans ton code.

Et pourquoi ne pas nous faire une partie qui explique le fonctionnement de ceci (tiré de Minix) :
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
typedef char *va_list;

    #define __va_rounded_size(TYPE) 
      (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))

    #define va_start(AP, LASTARG) 
     (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))

    #define va_arg(AP, TYPE) 
     (AP += __va_rounded_size (TYPE), 
      *((TYPE *) (AP - __va_rounded_size (TYPE))))

    void va_end (va_list);

Ça permettrait de comprendre ce qui se passe derrière ces mystérieuses va_list.

Et j'ai une petite question : à quoi sert la fonction va_end ?

Voilà, je pense que c'est tout :D .
 
Hors ligne KS # Posté le 13/07/2008 à 14:46:59 - Ce membre a mis la note : 19
Groupe : Membres
Salut!
Ton tutoriel est vraiment bien pour moi c'est 19 car 20 ça voudrait dire qu'il est parfait et j'ai pas envie de dire qu'il est parfait :diable: .

Je crois aussi avoir repéré une erreur quand tu présentes ta fonction multiplication() avec NULL comme dernier paramètre optionnel, ça devrait être "resultat" et pas "produit" le dernier argument de va_start(), non?

EDIT: Ha oui! Et dans ce même bout de code, tu as déjà écrit le va_end() alors que tu le présentes après!

Image utilisateur
 
Hors ligne Alp # Posté le 13/07/2008 à 15:52:57 - Ce membre n'a pas mis de note
Groupe : Membres
Déçu de ne pas voir une seule fois le terme "ellipse" dans le tutoriel...
 
Hors ligne uaip # Posté le 05/11/2008 à 23:40:19 - Ce membre n'a pas mis de note
Groupe : Membres
Salut.
Ce qui m'énerve plus que tout, ce sont les gens qui s'extasient "bravo bravo 20/20" sans même avoir lu le tuto.
C'est normal que tu utilises va_end(ap); dans un code en disant juste après "attention, avant de compiler, nous allons maintenant découvrir va_end" ?
Et dans ton 'va_start(ap, produit);' d'où elle sort, cette variable 'produit' ?
Soit tu t'es planté, soit c'est normal et dans ce cas je te demanderais un peu plus de précision s'il te plait.
Tu as aussi oublié d'inclure le header stdarg.h (tu n'en as même pas parlé).

Sinon le tuto est pas trop mal, quoi que certes bien écrit, coloré et imagé, mais sans grandes explications du 'pourquoi du comment'.
Peut-on utiliser des paramètres optionnels de différents types ? Si oui, comment ?

En clair, mon message rejoint un peu celui de Tim (que je n'ai vu qu'après ^^) mais je le poste quand même, c'est une sorte de "up" car je vois que ça fait 5 mois maintenant que tu n'as toujours pas modifié le tuto malgré les commentaires.
Bonne continuation.
Hors ligne 64th # Posté le 09/11/2008 à 21:49:36 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Bonjour,
Je suis bien conscient que mon tutoriel n'explique pas assez le "pourquoi du comment" et que la MàJ attend depuis maintenant longtemps. J'avais prévu de faire une mise à jour en ajoutant plus de précisions et les corrections nécessaires.
J'ai lu le commentaire de uaip. Je change donc de programme : je vais faire en sorte de proposer une version avec les corrections le plus tôt possible, et une autre version -plus importante- avec un approfondissement du tutoriel dans un peu plus longtemps, d'ici la fin de l'année.

Sachez que j'ai bien noté Toutes les remarques, et qu'elles seront prises en compte d'ici les deux prochaines MàJ.
Merci pour vos remarques constructives ;) .

Edit : le tutoriel est en validation.

Image utilisateur
||| ICI, mon tutoriel sur les fonctions à nombre variable de paramètres en C...
||| ...des fonctions comme printf, fprintf...
|||
||| ICI, quelques uns de mes programmes...
||| ...Gadolinium 1, bientôt Paintix 1 et Gadolinium 2...
 
Hors ligne conflict # Posté le 12/11/2008 à 15:09:54 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
Excellente astuce !!!
C'est vraiment LE sujet qu'il manque sur le site dans le C(compatible C++?, et sans compter un petit tuto OpenGL XD)
Allez, un p'tit 20/20, ça fait pas de mal pour tant de boulot, et sûrement beaucoup de recherches.

Team Fortress 2 POWAAA !

La blague d'un pote vraiment trop con:
"Tu sais comment on fait du hachich ? non ? et bin c'est simple, tu prend du hachi parmentier, tu enlève le parmentier et tu rajoutes un petit suisse, ha ha a !" hum hum hum xD c'est pour ca que je prefere l'appeller "une connaissance"
 
Hors ligne 64th # Posté le 14/11/2008 à 20:24:49 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
-

Image utilisateur
||| ICI, mon tutoriel sur les fonctions à nombre variable de paramètres en C...
||| ...des fonctions comme printf, fprintf...
|||
||| ICI, quelques uns de mes programmes...
||| ...Gadolinium 1, bientôt Paintix 1 et Gadolinium 2...
 

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 80 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.037s (0.0263s)