Latest web development tutorials

fichiers d'en-tête C

Le fichier d' en- tête est le.h extension de fichier,y compris une fonction C déclarations et définitions de macro, citée partagée par plusieurs fichiers source. Il existe deux types de têtes: les programmeurs d'écrire des fichiers d'en-tête et le compilateur est livré avec les fichiers d'en-tête.

Dans le programme que vous souhaitez utiliser les fichiers d' en- tête, utilisez la directive préprocesseur#include C de s'y référer.Nous avons déjà vu le fichier d' en- têtestdio.h, qui est le fichier d' en- tête qui vient avec le compilateur.

fichier d'en-tête de soumission est équivalent pour copier le contenu du fichier d'en-tête, mais nous ne copier le contenu du fichier d'en-tête directement dans le fichier source, car cela est sujette à l'erreur, en particulier lorsque le programme est composé d'une pluralité de fichiers source.

Une simple pratique dans le programme C ou C ++, recommandé que toutes les constantes, les macros, les variables globales et des prototypes de fonctions système écrit dans le fichier d'en-tête en cas de besoin à tout moment se référer à ces en-têtes.

fichiers d'en-tête de syntaxe de référence

Utilisation des directives de prétraitement#include peut référencer les fichiers utilisateur et en- tête du système.Elle possède les deux formes suivantes:

#include <file>

Ce formulaire est utilisé pour faire référence à l'en-tête des fichiers système. Il recherche un fichier de fichier nommé dans la liste standard du répertoire système. Lors de la compilation du code source, vous pouvez -I options avant le répertoire pré la liste.

#include "file"

Ce formulaire est utilisé pour référencer les fichiers d'en-tête de l'utilisateur. Il recherche un fichier fichier nommé dans le répertoire contenant le fichier en cours. Lors de la compilation du code source, vous pouvez -I options avant le répertoire pré la liste.

actions référentielles en-tête des fichiers

directive#include indique le préprocesseur C parcourir le fichier spécifié en entrée.Sortie du préprocesseur contient la sortie qui a été généré, les fichiers de sortie de texte référencé générés et de l' instruction de sortie#include.Par exemple, si vous avez un header.h de fichier d'en-tête, comme suit:

char *test (void);

Et un fichier d' en- tête en utilisant le programme principalprogram.c,comme suit:

int x;
#include "header.h"

int main (void)
{
   puts (test ());
}

Le compilateur voir le flux de jeton suivant:

int x;
char *test (void);

int main (void)
{
   puts (test ());
}

Seules les références de fichier d'en-tête d'un

Si un fichier d'en-tête est référencé deux fois, le compilateur traitera le contenu des deux fichiers d'en-tête, qui va générer une erreur. Pour éviter cela, la pratique courante est de mettre tout le contenu du fichier sur les états de compilation conditionnelle, comme suit:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Cette structure est communément appelé wrapper#ifndef.Lorsque vous référencez le fichier d'en-tête encore, la condition est fausse, parce HEADER_FILE défini. Dans ce cas, le préprocesseur va sauter tout le contenu du fichier, le compilateur ignorer.

citation conditionnelle

Parfois, vous devez sélectionner une référence au programme à partir de plusieurs fichiers d'en-tête différents. Par exemple, vous devez spécifier les paramètres de configuration sur les systèmes d'exploitation différents. Vous pouvez utiliser une série de conditions pour atteindre cet objectif, comme suit:

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

Toutefois, si le fichier d'en-tête plus de temps pour le faire est tout à fait inapproprié, utilisez les macros nom de préprocesseur pour définir les en-têtes. Ceci est appeléune référence conditionnelle.Il ne sert pas le nom du fichier d' en- tête#include paramètre direct, il vous suffit d'utiliser une macro pour remplacer le nom:

 #define SYSTEM_H "system_1.h"
 ...
 #include SYSTEM_H

SYSTEM_H se développe, le préprocesseur semble system_1.h, initialement écrit comme#include.SYSTEM_H Makefile peut être définie par l'option -D pour vous.