Aide appel de fonctions (langage C)
Fermé
paul75
Messages postés
3
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
30 décembre 2004
-
9 nov. 2004 à 23:11
Yep - 15 avril 2012 à 19:41
Yep - 15 avril 2012 à 19:41
A voir également:
- Aide appel de fonctions (langage C)
- Appel inconnu - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Langage binaire - Guide
- Appel annulé iphone - Forum Mobile
- La zone de données passée à un appel système est insuffisante - Windows 11
7 réponses
Dans ton code tu déclares 2 fois SAISIE, en fait à la 3ème ligne de ton main, en faisant précéder SAISIE(CH3,int); par char, c'est une redéclaration que tu fais, enlèves le char de cette ligne et c'est OK.
#include <stdio.h> #include <string.h> typedef char CH3[4]; void main() { CH3 cdeprod; int qte; char SAISIE(CH3,int); printf("Entrez un code-produit :\n"); gets(cdeprod); while(strcmp(cdeprod,"XXX")!=0) { char SAISIE(CH3,int); gets(cdeprod); } } //fonction saisie char SAISIE(CH3 cdeprod,int qte) { printf("Entrez une quantite"); scanf("%d",qte); return(qte); }
paul75
Messages postés
3
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
30 décembre 2004
9 nov. 2004 à 23:31
9 nov. 2004 à 23:31
bonsoir et merci,
le probleme c'est que si je l'enlève, il me met à la compilation 6 problemes :
le premier me signale une "error C2065: 'SAISIE' : undeclared identifier"
ensuite :
"error C2275: 'CH3' : illegal use of this type as an expression"
voila
merci infiniment
le probleme c'est que si je l'enlève, il me met à la compilation 6 problemes :
le premier me signale une "error C2065: 'SAISIE' : undeclared identifier"
ensuite :
"error C2275: 'CH3' : illegal use of this type as an expression"
voila
merci infiniment
Salut!
Manque le prototype de la fonction SAISIE avant la définition de la fonction main. Pas de type devant l'application d'une fonction seulement pendant sa définition et la déclaration du prototype. De plus tu ne mets pas en argument les noms des variables que tu as déclarés précédemment.
Observe la différence.
Je pense que ça passera mieux ainsi bien que je n'ai pas essayé de comprendre le code. ;-)
Manque le prototype de la fonction SAISIE avant la définition de la fonction main. Pas de type devant l'application d'une fonction seulement pendant sa définition et la déclaration du prototype. De plus tu ne mets pas en argument les noms des variables que tu as déclarés précédemment.
Observe la différence.
#include <stdio.h> #include <string.h> typedef char CH3[4]; /* prototype de saisir */ char saisir(CH3 cdeprod, int qte); int main(void) { CH3 cdeprod; int qte; /* ici on passe cedprod et qte en argument on applique la fonction pas besoin de char */ saisir(cdeprod, qte); printf("Entrez un code-produit :\n"); gets(cdeprod); while(strcmp(cdeprod, "XXX") != 0) { /* même chose ici */ saisir(cdeprod, qte); gets(cdeprod); } /* on retourne la valeur de la macro qui vaut 0 */ return EXIT_SUCCESS; } /* fonction saisir */ char saisir(CH3 cdeprod, int qte) { printf("Entrez une quantite"); /* ne pas oublier l'adresse & pour scanf */ scanf("%i", &qte); return qte; }
Je pense que ça passera mieux ainsi bien que je n'ai pas essayé de comprendre le code. ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LeSousss
Messages postés
149
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
23 juillet 2010
15
10 nov. 2004 à 10:49
10 nov. 2004 à 10:49
Salut, je ne suis pas vraiment sur mais essaye çà :
#include <stdio.h>
#include <string.h>
typedef char CH3[4];
//Je ne sais pas pourquoi tu veut envoyer cdeprod et qte dans ta fonction puisque tu ne les utilise pas
//char saisir(CH3 cdeprod, int qte);
//devient
char saisir();
int main(void)
{
CH3 cdeprod;
int qte;
//dans ta fonction tu retourne qte mais tu n'a pas de variable qui reçoit cette valeure donc :
qte = saisir();
printf("Entrez un code-produit :\n");
gets(cdeprod);
while(strcmp(cdeprod, "XXX") != 0)
{
qte = saisir();
gets(cdeprod);
}
return 0;
}
char saisir(CH3 cdeprod, int qte)
{
printf("Entrez une quantite");
scanf("%d", &qte);
return qte;
}
Voila dis moi si ca marche !
#include <stdio.h>
#include <string.h>
typedef char CH3[4];
//Je ne sais pas pourquoi tu veut envoyer cdeprod et qte dans ta fonction puisque tu ne les utilise pas
//char saisir(CH3 cdeprod, int qte);
//devient
char saisir();
int main(void)
{
CH3 cdeprod;
int qte;
//dans ta fonction tu retourne qte mais tu n'a pas de variable qui reçoit cette valeure donc :
qte = saisir();
printf("Entrez un code-produit :\n");
gets(cdeprod);
while(strcmp(cdeprod, "XXX") != 0)
{
qte = saisir();
gets(cdeprod);
}
return 0;
}
char saisir(CH3 cdeprod, int qte)
{
printf("Entrez une quantite");
scanf("%d", &qte);
return qte;
}
Voila dis moi si ca marche !