Davy8x
Messages postés13Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention27 juin 2006
-
27 juin 2006 à 00:37
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
27 juin 2006 à 20:40
J'utilise DevC++ et je voudrais découpper un programme en plusieurs fichiers.
Ces fichiers utiliseraient les même variables.
J'ai fait beaucoup d'essaies ( variable extern, fonction inline dans un .h,... )mais je n'arrive pas, à faire quelque chose qui marche.
un exemple bidon :
Dans le programme principale:
main()
{
initialisation();
affichage();
collision();
}
Ces 3 fonctions seraient dans d'autres fichiers mais utiliseraient les mêmes variables.
wxccxw
Messages postés755Date d'inscriptionsamedi 15 mai 2004StatutMembreDernière intervention30 janvier 2011 27 juin 2006 à 01:07
par exemple :
fonction.h contient le proto de notre fonction donc : int create(char * i);
puis fonction.cpp tu #include "fonction.h", tu met le vrai corp :
int create(char * i)
{
return 1;
}
puis pour utiliser create dans ton main.cpp tu ajoute au projet fonction.h et .cpp puis dans main.cpp tu #include "fonction.h" et donc tu peux utiliser create() dans ton main.cpp
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 27 juin 2006 à 01:43
Il veut que ses trois fonctions utilise la même variable. Si ce que BruNews ta recommendé n'a "pas fonctionné" et que c'est absolument nécessaire, bien tu peux toujours passer cette variable en paramètre. Par exemple, tes 3 fonctions utilise dison variable1 donc:
Par exemple:
main()
{
int variable1 = 0;
initialisation(&variable1); //Va transmettre une valeur à variable1
affichage(variable1); //Va afficher variable1
collision(variable1); //Detecte un collision
}
Sinon, les extern sont le seul moyen. Si ça ne fonctionne pas c'est que tu ne les utilises pas de la bonne façon. Les extern sont très facile à utiliser reprenon l'exemple de variable1:
// Dans ton fichier main.c
int variable1 = 0; // C'est une variable globale
int main ()
{
...
}
// Dans ton fichier contenant tes fonctions qui va s'appeller disons fonction.c
extern int variable1; // Encore une fois déclaré en variable globale
void initialisation ()
{
int test = variable1;
...
}
Davy8x
Messages postés13Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention27 juin 2006 27 juin 2006 à 20:15
Ho ! c'est super !!! en nétoillant le code pour te l'envoyer... ça l'a fait marché c'est magnifique 2 jours de recherche pour ça !!!
Donc le problème que j'avais c'est que je faisais la 1ère definition (celle sans le "extern") dans une fonction alors qu'il fallait la mettre en dehors !