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 ??? :aie:
Version imprimable
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 ??? :aie:
Une fonction peut faire autre chose que simplement retourner une valeur.
Exemple simple, fonction avec effet de bord: Affiche un entier.
Code:
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; }
et dans ce cas la à quoi sert ceci :
void UNE_FONCTION(void)
Merci ;)
mais sinon je ne comprend toujours pas l'histoire de "ne retourne rien".
Code:
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... :roll:
euh... ça m'apporte pas grand chose...:?
Mais n'as-tu jamais fais un printf() ?
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() )
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:
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: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 ...