Un fichier d'en-tête C est un composant fondamental de la programmation en C et C++, généralement identifié par l'extension .h. Il sert de référentiel pour les déclarations, incluant les prototypes de fonctions, les définitions de macros, les définitions de types et les variables globales qui doivent être partagées entre plusieurs fichiers de code source. En utilisant des fichiers d'en-tête, les développeurs peuvent maintenir une base de code modulaire, permettant aux différentes parties d'un programme d'interagir sans avoir à redéfinir systématiquement les structures ou les signatures de fonctions. Lorsqu'un fichier source inclut un fichier d'en-tête via la directive de préprocesseur #include, le compilateur copie effectivement le contenu de l'en-tête dans le fichier source avant le début du processus de compilation. Ce mécanisme est essentiel pour gérer des projets logiciels complexes, assurer la cohérence des structures de données et faciliter l'utilisation de bibliothèques. Les fichiers d'en-tête utilisent souvent des « gardes d'inclusion » — des directives de préprocesseur telles que #ifndef, #define et #endif — pour empêcher qu'un même fichier ne soit inclus plusieurs fois, ce qui provoquerait des erreurs de compilation dues à des redéfinitions. Ils constituent l'épine dorsale de l'architecture logicielle modulaire dans la famille des langages C.