Voila je n'ai pas trop compris dans quel sorte de programme on peut inserer void
enfin ce que je n'ai pas trop compris c'est qu'il "ne r'envoie pas d'imformation"
à quoi ça sert d'ecire quelque chose qui ne revoit rien ???![]()
Voila je n'ai pas trop compris dans quel sorte de programme on peut inserer void
enfin ce que je n'ai pas trop compris c'est qu'il "ne r'envoie pas d'imformation"
à quoi ça sert d'ecire quelque chose qui ne revoit rien ???![]()
Une fonction peut faire autre chose que simplement retourner une valeur.
Exemple simple, fonction avec effet de bord: Affiche un entier.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> /* Cette fonction prend un entier en paramètre et ne retourne rien. */ void AfficheUnEntier(int x) { printf("Valeur : %d\n", x); } /* Cette fonction ne prend aucun paramètre et retourne un entier. */ int main(void) { int toto = 42; AfficheUnEntier(toto); return 0; }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
et dans ce cas la à quoi sert ceci :
void UNE_FONCTION(void)
La fonction peut quand même avoir un comportement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void afficherErreur(void) { fprintf(stderr, "Erreur"); }
Merci
mais sinon je ne comprend toujours pas l'histoire de "ne retourne rien".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /* Cette fonction prend un entier en paramètre et ne retourne rien. */ void AfficheUnEntier(int x) { printf("Valeur : %d\n", x); }
qu'est ce qui change entre avant et après la fonction ? ...
je ne sais pas comment expliqué ce que je ne comprend pas là-dedans...![]()
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mais n'as-tu jamais fais un printf() ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
est ce que vous ne pouvez pas me donnez un exemple de programme avec une fonction du genre :
void AfficheUnEntier(int x)
pour que puisse essayé de la comprendre
(sinon j'ai deja utilisé printf() )
Suffit d'ajouter le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int main(void) { AfficherEntier(42); return 0; }
Oui mais dans ce cas là autant l'inserer directement printf() dans la fonction main
(?)
Bon, je considere la "question" comme resolu
je verais ça plus tard.
merci pour vos reponses![]()
Oui et non.
Imagine une fonction plus complexe :
Si tu dois utiliser à plusieurs endroit ton afficherLogarithme (le code est peut être faux...), la fonction sera utile pour ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void afficherLogarithme(int i) { int j = 1; int log = 0; while(j<i) { j*=2; log++; } printf("%d", log); }
(même si on aurait plutôt tendance à faire une fonction int getLogarithme(int i) qui retourne le logarithme en base 2.
Un autre cas typique c'est une fonction qui modifie des données qu'on lui passe sous forme de pointeur. Imagine une fonction qui insère un élément dans un liste chainée :
Elle n'a pas besoin de retourner quoi que ce soit, puisqu'elle se contente de mofifier la liste qui lui est passée en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part void add_element(list_t *list, const void *element);
D'ailleurs tu n'as jamais utilisé free() ? Elle ne retourne rien.
Encore merci
sinon je n'ai pas encore apris à utilisé de pointeur je commence juste à le faire ce soir ...
Partager