peut on inclure des fichiers .h dans d'autes fichiers .h ??? - C - Programmation
Marsh Posté le 10-02-2006 à 16:52:30
Bien sûr que tu peux.
D'ailleurs regarde les .h standards, tu verras qu'ils ne se privent pas.
Marsh Posté le 10-02-2006 à 17:23:22
in_your_phion a écrit : bongour !! |
bondoir !!
Citation : tout est dans le titre ...peut on inclure des fichiers .h dans d'autes fichiers .h ??? |
Oui. C'est une pratique courante et sans danger si on prend les précautions d'usage, telle que l'ajout de gardes anti-inclusions multiples dans une même unité de compilation comme expliqué ici :
http://mapage.noos.fr/emdel/codage [...] ser_source
Citation : plus exactement, est ce que c'est conseillé ou pas du tout ?? |
Ce n'est pas déconseillé. C'est le code qui guide. La regle est simple. Un header doit avoir tout ce qu'il faut pour être compilable seul. Si il y a un paramètre de fonction FILE *, il doit inclure <stdio.h>. Si il y a un size_t dans une structure, il faut inclure <stddef.h> etc. Pareil avec les headers 'maison' ou des bibliothèques tierces.
Ensuite, ce sont les protections déjà évoquées qui font la police.
Citation : en fait j'ai un code dont je met les protos de fonctions dans un ficher ".h". |
Ok.
Citation : Seulement, les protos des fonctions font appel a des structures définies par une librairie ...(GSL), |
Mal formulé. Tu veux dire
Citation : les protos des fonctions font appel a des structures définies dans le fichier d'interface *.h d'une bibliothèque (GSL) |
Citation :
|
classique.
Citation : |
Si les .h sont correctement protégés, il n'y a aucun risque.
Citation :
|
Rien à dire.
Marsh Posté le 10-02-2006 à 21:19:02
c'est important quand meme de savoir comment fonctionne le preprocesseur C
http://en.wikipedia.org/wiki/C_preprocessor
si tu utilises gcc, execute la commande
cpp fichier.c |
et tu verras ce que recupere le compilateur
Marsh Posté le 10-02-2006 à 16:37:07
bongour !!
tout est dans le titre ...peut on inclure des fichiers .h dans d'autes fichiers .h ??? plus exactement, est ce que c'est conseillé ou pas du tout ??
en fait j'ai un code dont je met les protos de fonctions dans un ficher ".h". Seulement, les protos des fonctions font appel a des structures définies par une librairie ...(GSL), par exemple certaines fonctions dans mon point h sont du type :
or, j'ai besoin d'inclure ce fichier ailleurs, mais ailleurs je ne fais pas appel aux fonctions du type que je viens de citer au dessus. Donc pour ne pas avoir d'erreur de compilation, le seul truc que j'ai trouvé c'est de mettre
dans mon fichier ".h"
...je peux faire ca ?? c'est mal ? je dois me flageller et demander repentance ? mon coeur chavire, tiraillé, je suis en plein doute. Ô lumière, éclaire moi
merci par avance
Message édité par in_your_phion le 10-02-2006 à 16:41:41