Dans langage C , les fichiers d'en-tête contiennent un ensemble de fonctions de bibliothèque standard prédéfinies. Le .h est l'extension des fichiers d'en-tête en C et nous demandons d'utiliser un fichier d'en-tête dans notre programme en l'incluant avec la directive de prétraitement C #inclure.
Les fichiers d'en-tête C offrent des fonctionnalités telles que les fonctions de bibliothèque, les types de données, les macros, etc. en les important dans le programme à l'aide d'une directive de préprocesseur #include.
Syntaxe des fichiers d'en-tête en C
Nous pouvons inclure des fichiers d'en-tête en C en utilisant l'une des deux syntaxes données, qu'il s'agisse d'un fichier d'en-tête prédéfini ou défini par l'utilisateur.
apprentissage automatique et types
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>
Le préprocesseur #include indique au compilateur que le fichier d'en-tête doit être traité avant la compilation et inclut tous les types de données et définitions de fonctions nécessaires.

Fichier d'en-tête C
Exemple de fichier d'en-tête en C
L'exemple ci-dessous montre l'utilisation de fichiers d'en-tête à l'aide du fichier d'en-tête stdio.h d'entrée et de sortie standard.
C
// C program to demonstrate the use of header files> // standard input and output stdio.h header file> #include> int> main()> {> >printf>(> >'Printf() is the function in stdio.h header file'>);> >return> 0;> }> |
>
>Sortir
Printf() is the function in stdio.h header file>
Types de fichiers d'en-tête C
Il existe deux types de fichiers d'en-tête en C :
- Fichiers d'en-tête standard/préexistants Fichiers d'en-tête non standard/définis par l'utilisateur
1. Fichiers d'en-tête standard en C et leurs utilisations
Les fichiers d'en-tête standard contiennent les bibliothèques définies dans la norme ISO du langage de programmation C. Ils sont stockés dans le répertoire par défaut du compilateur et sont présents dans tous les compilateurs C de n'importe quel fournisseur.
Il existe 31 fichiers d'en-tête standard dans la dernière version du langage C. Voici la liste de certains fichiers d'en-tête couramment utilisés en C :
| En tête de fichier | Description |
|---|---|
| Il contient des informations permettant d'ajouter des diagnostics facilitant le débogage du programme. | |
| Il est utilisé pour effectuer des opérations de gestion des erreurs comme errno(), strerror(), perror(), etc. | |
| Il contient un ensemble de diverses constantes dépendant de la plate-forme liées aux valeurs à virgule flottante. Ces constantes sont proposées par ANSI C. Ils rendent les programmes plus portables. Quelques exemples de constantes incluses dans ce fichier d'en-tête sont e(exposant), b(base/radix), etc. | |
| Il est utilisé pour effectuer des opérations mathématiques comme sqrt() , log2() , pow() , etc. | |
| Il est utilisé pour exécuter des fonctions de gestion du signal telles que signal() et raise(). | |
| Il est utilisé pour exécuter des fonctions d'argument standard comme va_start() et va_arg(). Il est également utilisé pour indiquer le début du liste d'arguments de longueur variable et pour récupérer les arguments de la liste d'arguments de longueur variable dans le programme respectivement. | |
| Il contient des prototypes de fonctions pour les fonctions qui testent les caractères pour certaines propriétés, ainsi que des prototypes de fonctions pour fonctions qui peuvent être utilisées pour convertir des lettres majuscules en lettres minuscules et vice versa. | |
| Il est utilisé pour effectuer des opérations d'entrée et de sortie à l'aide de fonctions telles que scanf() , printf() , etc. | |
| Il contient des fonctions utilitaires standard comme malloc(), realloc(), etc. Il contient des prototypes de fonctions pour les fonctions qui permettent de contourner de la séquence habituelle d’appel de fonction et de retour. | |
| Il est utilisé pour exécuter diverses fonctionnalités liées à la manipulation de chaînes comme strlen() , strcmp() , strcpy() , size(), etc. | |
| Il détermine les différentes propriétés des différents types de variables. Les macros définies dans cet en-tête limitent les valeurs de divers types de variables comme char, int et long. Ces limites précisent qu'une variable ne peut stocker aucune valeur au-delà de ces limites, par exemple, un caractère non signé peut stocker jusqu'à une valeur maximale de 255. | |
| Il est utilisé pour exécuter des fonctions liées à date() et temps() comme setdate() et getdate() . Il est également utilisé pour modifier la date du système et obtenez respectivement le temps CPU. | |
| Il contient des définitions de types courantes utilisées par C pour effectuer des calculs. | |
| Il contient des prototypes de fonctions et d'autres informations permettant de modifier un programme pour les paramètres régionaux actuels sur lesquels il s'exécute. Il permet au système informatique de gérer différentes conventions pour exprimer des données telles que des heures, des dates ou des grands nombres à travers le monde. |
Exemple
L'exemple ci-dessous montre l'utilisation de certains fichiers d'en-tête couramment utilisés en C.
C
// C program to illustrate> // the use of header file> // in C> #include> #include> #include> #include> // Driver Code> int> main()> {> >char> s1[20] =>'12345'>;> >char> s2[10] =>'Geeks'>;> >char> s3[10] =>'ForGeeks'>;> >long> int> res;> >// Find the value of 9^3 using a> >// function in math.h library> >res =>pow>(9, 3);> >printf>(>'Using math.h, '> >'The value is: %ld
'>,> >res);> >// Convert a string to long long int> >// using a function in stdlib.h library> >long> int> a =>atol>(s1);> >printf>(>'Using stdlib.h, the string'>);> >printf>(>' to long int: %ld
'>, a);> >// Copy the string s3 into s2 using> >// using a function in string.h library> >strcpy>(s2, s3);> >printf>(>'Using string.h, the strings'> >' s2 and s3: %s %s
'>,> >s2, s3);> >return> 0;> }> |
apurva padgaonkar
>
dialecte d'hibernation
>Sortir
Using math.h, The value is: 729 Using stdlib.h, the string to long int: 12345 Using string.h, the strings s2 and s3: ForGeeks ForGeeks>
2. Fichiers d'en-tête non standard en C et leurs utilisations
Les fichiers d’en-tête non standard ne font pas partie de la norme ISO du langage. Il s'agit généralement de tous les fichiers d'en-tête définis par les programmeurs à des fins telles que contenir des fonctions de bibliothèque personnalisées, etc. Ils sont installés manuellement par l'utilisateur ou peuvent faire partie du compilateur par un fournisseur spécifique.
Il existe de nombreuses bibliothèques non standard pour le langage C. Certains fichiers d'en-tête non standard/définis par l'utilisateur couramment utilisés sont répertoriés ci-dessous :
| En tête de fichier | Description |
|---|---|
| Il contient quelques fonctions de console utiles. | |
| Il contient la bibliothèque GUI de GNU pour C. |
Exemple
L'exemple ci-dessous montre l'utilisation du fichier d'en-tête non standard conio.h.
C
#include> #include> // Function to display a welcome message> void> displayMessage() {> >printf>(>'Hello! Geek
'>);> }> int> main() {> >// Using conio.h functions> >printf>(>'Press any key to print message
'>);> >getch();>// Wait for a key press> >// Call the additional function after a key press> >displayMessage();> >return> 0;> }> |
>
>
Sortir
Press any key to print message Hello! Geek>
Créez votre propre fichier d'en-tête en C
Au lieu d'écrire un code volumineux et complexe, nous pouvons créer nos propres fichiers d'en-tête et les inclure dans notre programme pour les utiliser quand nous le souhaitons. Il améliore la fonctionnalité et la lisibilité du code. Vous trouverez ci-dessous les étapes pour créer notre propre fichier d'en-tête :
Étape 1: Écrivez votre propre code C et enregistrez ce fichier avec le .h extension. Ci-dessous l'illustration du fichier d'en-tête :
C
// Function to find the sum of two> // numbers passed> int> sumOfTwoNumbers(>int> a,>int> b)> {> >return> (a + b);> }> |
>
tri de liste de tableaux Java
>
Étape 2: Incluez votre fichier d'en-tête avec #inclure dans votre programme C comme indiqué ci-dessous :
C
// C++ program to find the sum of two> // numbers using function declared in> // header file> #include 'iostream'> // Including header file> #include 'sum.h'> using> namespace> std;> // Driver Code> int> main()> {> >// Given two numbers> >int> a = 13, b = 22;> >// Function declared in header> >// file to find the sum> >printf>(>'Sum is: %d'>, sumoftwonumbers(a, b));> }> |
>
>
Sortir
Sum is: 35>
Inclure plusieurs fichiers d'en-tête
Vous pouvez utiliser différents fichiers d'en-tête dans un programme. Lorsqu'un fichier d'en-tête est inclus deux fois dans un programme, le compilateur traite le contenu de ce fichier d'en-tête deux fois. Cela conduit à une erreur dans le programme. Pour éliminer cette erreur, des directives conditionnelles du préprocesseur sont utilisées.
Syntaxe
#ifndef HEADER_FILE_NAME #define HEADER_FILE_NAME the entire header file #endif>
Cette construction est appelée wrapper #ifndef . Lorsque l'en-tête est à nouveau inclus, le conditionnel deviendra faux, car HEADER_FILE_NAME est défini. Le préprocesseur ignorera tout le contenu du fichier et le compilateur ne le verra pas deux fois.
Parfois, il est essentiel d’inclure plusieurs fichiers d’en-tête différents en fonction des exigences du programme. Pour cela, plusieurs conditions sont utilisées.
Syntaxe
#if SYSTEM_ONE #include 'system1.h' #elif SYSTEM_TWO #include 'system2.h' #elif SYSTEM_THREE .... #endif>