Directive #include (C/C++)

La directive d' #include indique le préprocesseur traiter le contenu d'un fichier spécifié comme si ces contenu était apparu dans le programme source au point où la directive s'affiche.

#include  "path-spec"
#include  <path-spec>

Notes

Vous pouvez organiser la constante et les définitions de macros dans des fichiers Include puis utiliser des directives d' #include pour ajouter ces définitions à n'importe quel fichier source.Les fichiers Include sont également utiles pour incorporer des déclarations de variables externes et des types de données complexes.Vous devez définir et nommer les types qu'une seule fois dans un fichier Include créé à cette fin.

La chemin d'accès-spécification est un nom de fichier éventuellement précédé d'une spécification de répertoire.le nom de fichier doit nommer un fichier existant.la syntaxe de la chemin d'accès- spécification dépend du système d'exploitation sur lequel le programme est compilé.

Pour plus d'informations sur comment référencer des assemblys dans l'application compilée C++ avec /clr, consultez #using.

Les deux formes de syntaxe provoquent le remplacement de cette directive par le contenu entier du fichier Include spécifié.La différence entre les deux formes est l'ordre dans lequel le préprocesseur recherche les fichiers d'en-tête lorsque le chemin d'accès est incomplètement spécifié.Le tableau suivant illustre la différence entre les deux formes de syntaxe :

Format de syntaxe

Action

forme avec guillemets

Les recherches de préprocesseur pour les fichiers Include dans l'ordre suivant :

  1. dans le même répertoire que le fichier qui contient l'instruction d' #include .

  2. Dans les répertoires de tous les fichiers Include précédemment ouverts dans l'ordre inverse dans lequel ils ont été ouverts.La recherche commence dans le répertoire du fichier Include qui a été ouvert en dernier et se poursuit jusqu ' à le répertoire du fichier Include qui a été ouvert en premier.

  3. Selon le chemin d'accès spécifié par chaque option du compilateur /I.

  4. Selon les chemins d'accès spécifiés par la variable d'environnement de COMPRENDRE.

Formulaire de crochet angulaire

Les recherches de préprocesseur pour les fichiers Include dans l'ordre suivant :

  1. Selon le chemin d'accès spécifié par chaque option du compilateur /I.

  2. Lors de la compilation à partir de la ligne de commande, selon les chemins d'accès spécifiés par la variable d'environnement de COMPRENDRE.

Le préprocesseur arrête de le trouver dès qu'il recherchera un fichier avec le nom spécifié.Si vous spécifiez une spécification complète et non équivoque de chemin d'accès au fichier Include entre des guillemets doubles (**« « **), les recherches de préprocesseur uniquement la spécification du chemin d'accès et ignore les répertoires standard.

Si le nom de fichier placé entre guillemets doubles est une spécification incomplète de chemin d'accès, le préprocesseur recherche d'abord le répertoire de fichier « relative ».un fichier parent est le fichier contenant la directive d' #include .par exemple, si vous incluez un fichier nommé file2 dans un fichier nommé file1, file1 est le fichier parent.

les fichiers Include peuvent être « imbriqués » ; autrement dit, une directive d' #include peut apparaître dans un fichier nommé par une autre directive d' #include .Par exemple, file2, ci-dessus, pourrait inclure file3.Dans ce cas, file1 est le parent d' file2 mais est toujours « grand-parent » d' file3.

Lorsque les fichiers Include sont imbriqués et lors de la compilation de la ligne de commande, rechercher de répertoire commence par les répertoires du fichier parent puis se poursuit dans les répertoires de tous les fichiers de grand-parent.Par conséquent, la recherche commence par rapport à le répertoire contenant la source actuellement en cours de traitement.Si le fichier est introuvable, la recherche se déplace vers les répertoires spécifiés par l'option du compilateur /I.Enfin, les répertoires spécifiés par la variable d'environnement de COMPRENDRE se trouvent.

de l'environnement de développement, la variable d'environnement de COMPRENDRE est ignorée.Pour définir les répertoires détectés des fichiers Include (ces informations s'appliquent également à LIB la variable d'environnement.), consultez Répertoires VC++, projets, boîte de dialogue options.

L'exemple suivant illustre l'inclusion de fichier à l'aide de les crochets :

#include <stdio.h>

cet exemple ajoute le contenu du fichier nommé STDIO.H au programme source.Les crochets font pour rechercher le préprocesseur les répertoires spécifiés par la variable d'environnement de COMPRENDRE pour STDIO.H, après avoir trouvé des répertoires spécifiés par l'option du compilateur /I.

L'exemple suivant illustre l'inclusion de fichier à l'aide de la forme avec guillemets :

#include "defs.h"

cet exemple ajoute le contenu du fichier spécifié par DEFS.H au programme source.Les guillemets doubles impliquent que le préprocesseur recherche dans le répertoire contenant le fichier source parent en premier.

l'imbrication des fichiers Include peut continuer jusqu'à 10 niveaux.une fois qu' #include imbriqué est traité, le préprocesseur continue à insérer le fichier Include englobant dans le fichier source d'origine.

Spécifique à Microsoft

Pour localiser les fichiers sources inline, le préprocesseur recherche d'abord les répertoires spécifiés par l'option du compilateur /I.Si l'option /I n'est pas présente ou échoue, le préprocesseur utilise la variable d'environnement de COMPRENDRE pour rechercher tous les fichiers Include dans des crochets.La variable d'environnement de COMPRENDRE et l'option du compilateur /I peuvent contenir plusieurs chemins d'accès séparés par des points-virgules (;).Si plusieurs répertoire apparaît dans le cadre de l'option /I ou la variable d'environnement de COMPRENDRE, le préprocesseur les trouve dans l'ordre dans lequel ils s'affichent.

par exemple, la commande

CL /ID:\MSVC\INCLUDE MYPROG.C

fait pour rechercher le préprocesseur le répertoire D : \MSVC\INCLUDE for include files such as STDIO.H.les commandes

SET INCLUDE=D:\MSVC\INCLUDE
CL MYPROG.C

ont le même effet.Si les deux jeux de recherches échouent, une erreur du compilateur mortelle est générée.

Si le nom de fichier est complètement spécifié pour un fichier Include avec un chemin d'accès qui inclut un signe deux-points (par exemple, F : \MSVC\SPECIAL\INCL\TEST.H), le préprocesseur suit le chemin d'accès.

Pour les fichiers Include spécifiés commechemin d'accès-spécificationLiens Ignorer la navigationd' #includeLiens Ignorer la navigation, la recherche de répertoire commence par le répertoire du fichier parent puis se poursuit dans les répertoires de tous les fichiers de grand-parent.Par conséquent, la recherche commence par rapport à le répertoire contenant le fichier source contenant la directive d' #include en cours de traitement.S'il n'existe aucun fichier de grand-parent et le fichier n'a pas été trouvée, la recherche se poursuit comme si le nom de fichier ont été insérés dans des crochets pointus.

détail de FIN Microsoft

Voir aussi

Référence

Directives de préprocesseur