Inclure un .c ou .h

Résolu
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005 - 27 mai 2005 à 15:52
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005 - 28 mai 2005 à 09:52
Voilà je suis entrain de faire un programme qui est assez long et donc
j'aimerais séparer mes fonctions dans differents fichiers par exemple
fichier1.c fichier2.c et main.c



et dans le main j'utilise les fonctions de chacun des fichier...

mais pour les inclure est ce qu'il faut faire #include <fichier1.c>

ou bien faire un fichier1.h et #include <fichier1.h> ???



si c'est la deuxieme solution comment je fait mon .h ???

en métant les entetes de mes fonctions du .c ??



je vous remercie...

8 réponses

ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
28 mai 2005 à 01:20
Je revien juste corriger une enorme faute que j'ai faite, meme si je pense que tu aurais corriger par toi-même, je prefere corriger quand même :)

/* fichier malib.h */
extern int mafonction(int);

/* fichier malib.c */
#include "malib.h"

extern int mafonction(int nombre)
{
return (nombre * nombre);
}
3
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
27 mai 2005 à 17:01
Bonsoir,



Deuxieme solutions et tu mets les prototypes de tes differentes fonctions.

#include "fichier1.h" (il faut des guillemets).

Matt...
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
27 mai 2005 à 17:49
il faut compiler les .c séparement dans des .o et lier les .o avec un linker.

les .h contiendront les prototypes des fcts et les .c le code.
les .c devront inclurent les .h contenant les prototypes des fcts utilisées.
0
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005
27 mai 2005 à 18:19
et comment je pourrai faire pour lier les .o???

c'est au niveau de la compilation non?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
27 mai 2005 à 21:26
Tu developpes avec quoi et sous quel environnement ???

Matt...
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
27 mai 2005 à 22:19
sous la plupart des ide c automatique : il suffit en general de cree un projet

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
28 mai 2005 à 00:05
Pour rendre les fonction d'un .c utilisable dans d'autre fichier il faut les rendre "extern"

/* fichier main.c */
#include "malib.h"

int main(int argc, char *argv[])
{
return fonction(10);
}

/* fichier malib.h */
extern mafonction(int);

/* fichier malib.c */
#include "malib.h"

extern mafonction(int nombre)
{
return (nombre * nombre);
}

Le #include "malib.h" dans le fichier "malib.c" n'est necessaire que si les fonctions qu'il contient peuvent appeler d'autres fonction qui sont elles aussi contenus par ce fichier.
Faire un .h n'est pas obligatoire dans le sens ou tu peux copier directement les prototypes aux dessus de ton main(), cependant il est conseiller de mettre tout ce qui est #define, class, struct, typedef, prototypes, ..., dans des .h puis de les inclure tout simplement pour des raison de lisibilitées du code.
0
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005
28 mai 2005 à 09:52
ok je te remercie !!!

je connaissai pas "extern" !!!
0
Rejoignez-nous