Progrmation modulaire [C]
---vivi---
Messages postés
83
Statut
Membre
-
---vivi--- Messages postés 83 Statut Membre -
---vivi--- Messages postés 83 Statut Membre -
Bonjour, j'ai un problème avec ce code :
MAIN.C
#include "essai.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
essai(void);
return 0;
}
ESSAI.H
void essai (void);
ESSAI.C
#include "essai.h"
#include <stdio.h>
#include <stdlib.h>
void essai(void)
{
printf("coucou");
}
est ce que quelqu'un peu m'aider?
MAIN.C
#include "essai.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
essai(void);
return 0;
}
ESSAI.H
void essai (void);
ESSAI.C
#include "essai.h"
#include <stdio.h>
#include <stdlib.h>
void essai(void)
{
printf("coucou");
}
est ce que quelqu'un peu m'aider?
Configuration: Windows XP Firefox 3.0.6
3 réponses
-
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-
C'est ce qui me semblait, mais comme je n'étais pas sur, je me suis abstenue.
En quoi c'est mieux de mettre le void à la déclaration d'une fonction ?- En fait :
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.
-
-
Salut.
précise un peu.
tu n'as pas besoin de préciser void lors de l'appel à essai(). -
Pardon pour le retard j'ai eu des probs internet. Merci bcp pour vos explications très claires. J'ai tout compris