Progrmation modulaire [C]
Fermé
---vivi---
Messages postés
76
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
23 octobre 2009
-
27 févr. 2009 à 13:46
---vivi--- Messages postés 76 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 23 octobre 2009 - 13 mars 2009 à 17:52
---vivi--- Messages postés 76 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 23 octobre 2009 - 13 mars 2009 à 17:52
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
27 févr. 2009 à 16:44
27 févr. 2009 à 16:44
Salut,
Je dirais même plus, qu'il ne faut pas sinon cela provoque une erreur. Le void se met dans la déclaration de la fonction et son prototype, pas à son appel.
Par exemple, tu peux mettre (et c'est mieux), int main(void);
Mais, tu ne peux pas mettre : essai(void). Juste : essai();
Cdlt
Je dirais même plus, qu'il ne faut pas sinon cela provoque une erreur. Le void se met dans la déclaration de la fonction et son prototype, pas à son appel.
Par exemple, tu peux mettre (et c'est mieux), int main(void);
Mais, tu ne peux pas mettre : essai(void). Juste : essai();
Cdlt
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
27 févr. 2009 à 16:30
27 févr. 2009 à 16:30
Salut.
précise un peu.
tu n'as pas besoin de préciser void lors de l'appel à essai().
précise un peu.
tu n'as pas besoin de préciser void lors de l'appel à essai().
---vivi---
Messages postés
76
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
23 octobre 2009
11
13 mars 2009 à 17:52
13 mars 2009 à 17:52
Pardon pour le retard j'ai eu des probs internet. Merci bcp pour vos explications très claires. J'ai tout compris
28 févr. 2009 à 19:57
En quoi c'est mieux de mettre le void à la déclaration d'une fonction ?
28 févr. 2009 à 20:37
Comme tu le sais ça ne change strictement rien, mais je trouve ça plus lisible de préciser void, de plus il n'y a pas d'ambiguïté et c'est la raison pour laquelle je le mets systématiquement.
28 févr. 2009 à 21:50
int toto(); cela est une déclaration et non un prototype. Cela dit au compilateur de ne pas gérer les arguments. Donc si tu définis une fonction comme ça, tu pourras l'appeler avec des arguments sans soucis.
Alors que lorsque tu fais : int toto(void); cela est bien un prototype et tu dis au compilateur que cette fonction admet zéro argument. Donc un appel comme toto(1), sera refusé.
A noter que ceci est valable en C. En C++, il y a équivalence.
28 févr. 2009 à 22:30
C'est vrai qu'en C++ (que je connaît mieux) les arguments apparaissent dans le nom de la fonction, donc impossible de se tromper.