Fichiers d'en-tête
Fait partie de la section Object Oriented Programming du Journey C de Coddy — leçon 1 sur 61.
À mesure que les programmes C deviennent plus volumineux, conserver tout le code dans un seul fichier devient ingérable. Les fichiers d'en-tête offrent un moyen d'organiser votre code en séparant ce que fait une fonction de la manière dont elle le fait.
Un fichier d'en-tête (avec l'extension .h) contient des déclarations de fonctions (également appelées prototypes). Ces déclarations indiquent au compilateur qu'une fonction existe et quels paramètres elle accepte, sans fournir l'implémentation réelle.
// math_utils.h
int add(int a, int b);
Pour utiliser des déclarations provenant d'un fichier d'en-tête, vous l'incluez avec la directive #include. Pour vos propres en-têtes, utilisez des guillemets doubles au lieu de chevrons :
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
return 0;
}
La principale différence : #include <stdio.h> recherche dans les répertoires système, tandis que #include "math_utils.h" recherche d'abord dans le dossier de votre projet. Cette séparation permet à plusieurs fichiers de partager les mêmes déclarations de fonctions, rendant votre base de code plus facile à parcourir et à maintenir.
Aide-mémoire
Les fichiers d'en-tête (avec l'extension .h) contiennent des déclarations de fonctions qui indiquent au compilateur qu'une fonction existe sans fournir son implémentation :
// math_utils.h
int add(int a, int b);
Incluez vos propres fichiers d'en-tête en utilisant des guillemets doubles :
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
#include <stdio.h> recherche dans les répertoires système, tandis que #include "math_utils.h" recherche d'abord dans le dossier de votre projet.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Object Oriented Programming
1Bases de la programmation modulaire
Fichiers d'en-têteGardes d'inclusionFichiers sourcesFonctions statiquesRécapitulatif : Calculatrice modulaire4Encapsulation
Concept des pointeurs opaquesDéfinir des structures opaquesGetters et settersValidation dans les settersRécapitulatif : La boîte secrète2Objets et méthodes
Structs comme objetsLe pointeur 'Self'Rigueur du mot-clé constPointeur vs ValeurMéthodes utilitairesRécapitulatif : Point Manager5Projet : Compte bancaire simple
Configuration du projetImplémentation du compte8Polymorphisme
Pointeurs de fonctions dans les structuresSimulation de méthodesLe concept d'interfaceImplémentation d'interfacesItération polymorphiqueRécapitulatif : Greeter11Patrons de conception en C
Patron SingletonPatron FabriquePatron ItérateurRécapitulatif : Logger Factory3Cycle de vie des objets
Pattern de constructeurPattern de destructeurInitialisation sur la pileCopie profondeRécapitulatif : String Wrapper6Héritage par composition
Imbrication de structLa règle du premier membreAccès aux membres parentsUpcastingRécapitulatif : Hiérarchie des formes9Projet : Dessinateur de formes
Aperçu du projetImplémentation du cercle