Probleme avec la programmation modulaire
Résolu/Fermé
A voir également:
- Probleme avec la programmation modulaire
- Programmation - Guide
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Forcer la fermeture d'un programme - Guide
- Programmation binaire - Guide
4 réponses
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
19 déc. 2011 à 16:08
19 déc. 2011 à 16:08
Bon alors deja, un fichier .h ne doit pas te servir pour coder tes fonctions, cela te sers a connaitre le prototype de ce qui est present dans ton .c.
Dans ton .h ne se trouve donc que des declarations (de fonctions, de structures, de constantes etc)
Dans ton .c se trouve le code.
Ceci etant dit, quand tu vas compiler tes fichiers, des fichiers objets vont se creer pour chaque .c et vont tous se regrouper dans un fichier executable pour donner ton programme.
Le point d'entree de ton programme est la fonction main.
Donc lors de l'execution, main() est appelee en premier.
Ainsi:
Tu crees 2 variables
Tu ecris "dis un nombre" sur la sortie standard
Tu attends que l'utilisateur ecrive un nombre sur l'entree standard
Tu affectes le resultat de la fonction quintuple(nombreEntre) a ta variable. Grace au import "main.h" tu sais que cette fonction existe.
Tu ecris sur la sortie stantard "le quintuple de ce nombre est" et le contenu de ta variable
Tu sors de la fonction main (donc du programme) en renvoyant 0 (qui est la valeur de retour de ton programme, generalement 0 veut dire que tout s'est bien passe)
Dans ton .h ne se trouve donc que des declarations (de fonctions, de structures, de constantes etc)
Dans ton .c se trouve le code.
Ceci etant dit, quand tu vas compiler tes fichiers, des fichiers objets vont se creer pour chaque .c et vont tous se regrouper dans un fichier executable pour donner ton programme.
Le point d'entree de ton programme est la fonction main.
Donc lors de l'execution, main() est appelee en premier.
Ainsi:
int nombreEntre=0, nombreQuintuple=0;
Tu crees 2 variables
printf("dis un nombre\n");
Tu ecris "dis un nombre" sur la sortie standard
scanf("%d", &nombreEntre);
Tu attends que l'utilisateur ecrive un nombre sur l'entree standard
nombreQuintuple=quintuple(nombreEntre);
Tu affectes le resultat de la fonction quintuple(nombreEntre) a ta variable. Grace au import "main.h" tu sais que cette fonction existe.
printf("le quintuple de ce nombre est %d", nombreQuintuple);
Tu ecris sur la sortie stantard "le quintuple de ce nombre est" et le contenu de ta variable
return 0;
Tu sors de la fonction main (donc du programme) en renvoyant 0 (qui est la valeur de retour de ton programme, generalement 0 veut dire que tout s'est bien passe)
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 19/12/2011 à 16:14
Modifié par matthoffman le 19/12/2011 à 16:14
Pour repondre a la deuxieme partie de ta question, tu vois bien que ton programme ne fait JAMAIS appel a la fonction "bonjour()" presente dans testfonction.c
En fait, tu as a ta disposition la fonction "bonjour()" (a la seule condition de faire un import "testfonction.c"), mais ici tu ne t'en sers pas dans ton programme, donc elle sera jamais appelee.
Si tu veux juste avant le "return 0;", tu peux ecrire "bonjour();" (n'oublies pas de rajouter #import "testfonction.c")
Mais la encore il serait preferable de definir le protoype de la fonction bonjour dans un testfonction.h et d'en ecrire le code dans le testfonction.c. Comme ca tu fais import "testfonction.h", car on ne fait jamais d'import de .c
Et Hello s'affichera avant que le programme se finisse
En fait, tu as a ta disposition la fonction "bonjour()" (a la seule condition de faire un import "testfonction.c"), mais ici tu ne t'en sers pas dans ton programme, donc elle sera jamais appelee.
Si tu veux juste avant le "return 0;", tu peux ecrire "bonjour();" (n'oublies pas de rajouter #import "testfonction.c")
Mais la encore il serait preferable de definir le protoype de la fonction bonjour dans un testfonction.h et d'en ecrire le code dans le testfonction.c. Comme ca tu fais import "testfonction.h", car on ne fait jamais d'import de .c
Et Hello s'affichera avant que le programme se finisse
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
19 déc. 2011 à 16:12
19 déc. 2011 à 16:12
Bonjour,
La fonction Main s'exécute à l'ouverture de l'appli (ou à la compilation)
Les autre fonctions doivent être appelées.
Ajoute bonjour() juste en première ligne de Main.
A+
La fonction Main s'exécute à l'ouverture de l'appli (ou à la compilation)
Les autre fonctions doivent être appelées.
Ajoute bonjour() juste en première ligne de Main.
A+
Merci a vous pour vos reponses, mais j'avais justement fini par trouve la solution juste avant que vous ne repondiez, et j'ai compris en effet qu'il fallait faire appel a ma fonction bonjour dans le main, mais je nai pas eu besoin de #import...
Et merci pour le conseil en ce qui s'agit de seulement declarer les fonctions dans les .h, car je debute, et la je suis un peu perdu ...
Et merci pour le conseil en ce qui s'agit de seulement declarer les fonctions dans les .h, car je debute, et la je suis un peu perdu ...