Utilisation des fichiers h (header)
Introduction
Dans l'article "Led Class - Part 1", j'ai fournis en exemple le premier prototype des fonctions que j'utiliserai plus tard pour construire ma classe Led.
Philomenale me faisait remarquer à juste titre qu'un fichier .h ne doit pas contenir de définition de fonction.
Comme mes connaissances C datent un peu, je suis parti glaner quelques informations en vue de faire les corrections appropriées.
Qu'est-ce qu'un fichier H?
Je reprends ici le texte publié sur un fil de discussion de CommentCaMarche.net.
h c'est le diminutif de header (en-tête).
Un fichier header c'est là qu'on defini habituellement le prototype des fonctions. C'est aussi là que sont définis/énoncés les types personnalisés, les structures, les classes, et des constantes globales.
A quoi cela sert-il?
Premièrement à mieux s'y retrouver, on trouve la référence de ce qu'il y a dans un fichier c ou cpp dans le header qu'il inclut.
Deuxièmement, cela permet de signaler l'existence d'une fonction pour l'utiliser avant de l'avoir définie.
Exemple:
Protoype d'une fonction bidule dans le fichier header:
Si cette fonction est dans le header d'un fichier c (donc dans un fichier *.h inclus dans le fichier c), alors il est possible d'utiliser cette fonction même si sa définition est faite plus bas dans le fichier c voire encore dans un autre fichier c (lié avec le fichier header).
La définition de la fonction peut donc se retrouver ailleurs:
Le fichier header doit débuter comme ceci :
#ifndef nom_du_fichier.h
#define nom_du_fichier.h
et se terminer comme ceci :
#endif
Il peut ensuite être intégré au fichier cpp (c++) ou c (c standard) en écrivant :
#include "nom_du_fichier.h"
Le contenu entre les guillemets ("nom_du_fichier.h") dépend de l’endroit où se trouve le fichier header.
Il doit être absolument être disponible depuis le dossier du projet.
Références
Dans l'article "Led Class - Part 1", j'ai fournis en exemple le premier prototype des fonctions que j'utiliserai plus tard pour construire ma classe Led.
Philomenale me faisait remarquer à juste titre qu'un fichier .h ne doit pas contenir de définition de fonction.
Comme mes connaissances C datent un peu, je suis parti glaner quelques informations en vue de faire les corrections appropriées.
Qu'est-ce qu'un fichier H?
Je reprends ici le texte publié sur un fil de discussion de CommentCaMarche.net.
h c'est le diminutif de header (en-tête).
Un fichier header c'est là qu'on defini habituellement le prototype des fonctions. C'est aussi là que sont définis/énoncés les types personnalisés, les structures, les classes, et des constantes globales.
A quoi cela sert-il?
Premièrement à mieux s'y retrouver, on trouve la référence de ce qu'il y a dans un fichier c ou cpp dans le header qu'il inclut.
Deuxièmement, cela permet de signaler l'existence d'une fonction pour l'utiliser avant de l'avoir définie.
Exemple:
Protoype d'une fonction bidule dans le fichier header:
void bidule(char *truc);
Si cette fonction est dans le header d'un fichier c (donc dans un fichier *.h inclus dans le fichier c), alors il est possible d'utiliser cette fonction même si sa définition est faite plus bas dans le fichier c voire encore dans un autre fichier c (lié avec le fichier header).
La définition de la fonction peut donc se retrouver ailleurs:
void bidule(char *truc) { printf("%s",truc); }
Le fichier header doit débuter comme ceci :
#ifndef nom_du_fichier.h
#define nom_du_fichier.h
et se terminer comme ceci :
#endif
Il peut ensuite être intégré au fichier cpp (c++) ou c (c standard) en écrivant :
#include "nom_du_fichier.h"
Le contenu entre les guillemets ("nom_du_fichier.h") dépend de l’endroit où se trouve le fichier header.
Il doit être absolument être disponible depuis le dossier du projet.
Références
- C++ Header File Include Patterns sur EventHelix.com.
Fournit un excellent exemple très complet.
Écrire un commentaire