Question sur HEADERS
Fermé
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
-
31 mars 2014 à 16:46
asstel Messages postés 51 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 14 décembre 2014 - 2 avril 2014 à 20:47
asstel Messages postés 51 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 14 décembre 2014 - 2 avril 2014 à 20:47
A voir également:
- Question sur HEADERS
- The size of the request headers is too long. traduction - Forum Webmastering
- Codeblocks & les headers - Forum Programmation
- Session_start() headers already sent ✓ - Forum Webmastering
- Error fetching http headers - Forum PHP
- Où se-trouvent les 'kernel-headers' ? ✓ - Forum Linux / Unix
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 2/04/2014 à 13:58
Modifié par [Dal] le 2/04/2014 à 13:58
Salut asstel,
En général, une pratique recommandée est :
- de ne mettre dans les .h que les déclarations : des fonctions, des structures, des variables globales (si elles sont vraiment nécessaires) seulement déclarées avec le mot clef "extern",
- et de mettre dans les fichiers .c le reste, c'est à dire notamment : les implémentations des fonctions, les définitions et initialisations de variables (notamment des variables "extern" déclarées dans le .h) et de structures.
Le C étant particulièrement laxiste, tu peux faire autrement, mais ce n'est pas recommandé.
Je trouve que le document suivant http://www.umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf produit par un professeur de l'Université du Michigan est assez complet et bien fait et contient un bon résumé des bonnes pratiques que les programmeurs C s'attendent à retrouver en consultant un code source raisonnablement bien construit.
Dal
En général, une pratique recommandée est :
- de ne mettre dans les .h que les déclarations : des fonctions, des structures, des variables globales (si elles sont vraiment nécessaires) seulement déclarées avec le mot clef "extern",
- et de mettre dans les fichiers .c le reste, c'est à dire notamment : les implémentations des fonctions, les définitions et initialisations de variables (notamment des variables "extern" déclarées dans le .h) et de structures.
Le C étant particulièrement laxiste, tu peux faire autrement, mais ce n'est pas recommandé.
Je trouve que le document suivant http://www.umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf produit par un professeur de l'Université du Michigan est assez complet et bien fait et contient un bon résumé des bonnes pratiques que les programmeurs C s'attendent à retrouver en consultant un code source raisonnablement bien construit.
Dal
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
31 mars 2014 à 17:38
31 mars 2014 à 17:38
si cet header a besoin d'une structure qui se trouve dans l'autre header
esq c le meme principe qu'une procedure
ou bien il faut la reecrire dans cet header aussi?
mercii :D
esq c le meme principe qu'une procedure
ou bien il faut la reecrire dans cet header aussi?
mercii :D
2 avril 2014 à 14:18
Je mets dans .h que les prototypes
mais j'avais une structure dans autre_header.c et header.c a besoin de cette structure malgre que j ai fait include mais le meme problem qui se pose donc j ai copie ma structure dans header.c aussi
esq c logique se qe j ai fais ou bien ...?!
Modifié par [Dal] le 2/04/2014 à 16:03
Si une structure a vocation à être utilisée par plusieurs fichiers .c, (disons une structure "personne" pouvant contenir nom, prenom, adresse, etc. - pour une application de gestion de personnel), tu peux créer un .h pour la déclarer (et y déclarer toutes autres déclarations destinées à être utilisées dans plusieurs modules .c - tu n'as pas nécessairement à faire en sorte qu'un fichier .h corresponde à un fichier .c).
par exemple, tu mets dans un fichier :
Tu inclueras ce .h dans chaque .c qui aura besoin de définir une struct ainsi déclarée.
Par exemple, dans main.c :
Mais aussi dans un autre module, par exemple fiches_paie.c.
Cet exemple illustre le partage de la déclaration d'une structure dans un .h, pouvant être utilisée et définie dans plusieurs fichiers .c.
Dal
2 avril 2014 à 16:09
ou
dans un .h et cela m'evitra de la reecrire !
merciii :D
2 avril 2014 à 16:13
Modifié par [Dal] le 2/04/2014 à 18:14
Cependant, si tu décides de les déclarer, leur place est dans un .h, effectivement. Tu pourras en faire usage pour définir une variable dans un .c au moyen de l'alias typedef ainsi déclaré, sous réserve d'inclure le .h qui le contient dans ce .c.
La définition de variable avec ton typedef serait et pas ce que tu as écrit. Cette définition, donc, irait dans un .c (celui qui l'utiise) et pas dans un .h.
Oui, un .h peut servir à plusieurs .c. C'est l'objet de mon exemple que de l'illustrer.
Dal