Compartir a través de


Directiva #include (C/C++)

La directiva de #include indica el preprocesador que trate el contenido de un archivo especificado como si esos contenido hubieran producido en el programa de origen en el punto donde aparece la directiva.

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

Comentarios

Puede organizar las definiciones constantes y de macro en los archivos de inclusión y después utilizar las directivas de #include para agregar estas definiciones a cualquier archivo de código fuente.Los archivos de inclusión son también útiles para escribir declaraciones de variables externas y tipos de datos complejos.Debe definir y llamar a los tipos solo una vez en un archivo de inclusión creado para ese propósito.

La ruta-especificación es un nombre de archivo precedido opcionalmente mediante la especificación de un directorio.El nombre de archivo debe llamar a un archivo existente.La sintaxis de la ruta-especificación depende del sistema operativo en el que el programa se compila.

Para obtener información sobre cómo hacer referencia a los ensamblados de la aplicación en cuestión. compilada con /clr, vea #using.

Las dos formas de sintaxis generan el reemplazo de esa directiva por el contenido completo del archivo de inclusión especificado.La diferencia entre los dos formularios es el orden en el que el preprocesador busca los archivos de encabezado si la ruta de acceso que se especifica.La tabla siguiente muestra la diferencia entre las dos formas de sintaxis:

Formato de sintaxis

Acción

Formulario comillas

Las búsquedas de preprocesador para archivos de inclusión en el orden siguiente:

  1. en el mismo directorio que el archivo que contiene la instrucción de #include .

  2. En los directorios de los archivos abiertos previamente de inclusión en el orden inverso en que se abiertas.La búsqueda comienza desde el directorio del archivo de inclusión que se ha abierto en último lugar y pasa por el directorio del archivo de inclusión que se ha abierto primero.

  3. A lo largo de la ruta de acceso especificada por cada opción del compilador /I.

  4. A lo largo de las rutas de acceso especificadas por la variable de entorno INCLUDE.

Formulario de corchete angular

Las búsquedas de preprocesador para archivos de inclusión en el orden siguiente:

  1. A lo largo de la ruta de acceso especificada por cada opción del compilador /I.

  2. Al compilar desde la línea de comandos, a lo largo de las rutas de acceso especificadas por la variable de entorno INCLUDE.

El preprocesador detiene la búsqueda en cuanto se encuentre un archivo con el nombre especificado.Si especifica haber completado, la especificación clara de ruta de acceso del archivo de inclusión entre comillas (““), el preprocesador sólo especificación de ruta y omite los directorios estándar.

Si el nombre de archivo esté entre comillas es una especificación incompleta de ruta, el preprocesador busca primero en el directorio de archivo “principal”.Un archivo principal es el archivo que contiene la directiva de #include .Por ejemplo, si incluye un archivo denominado file2 dentro de un archivo denominado file1, file1 es el archivo principal.

Archivos de inclusión pueden ser “anidados”; es decir, una directiva de #include puede aparecer en un archivo denominado por otra directiva de #include .Por ejemplo, file2, anteriormente, podría incluir file3.En este caso, file1 todavía sería el elemento primario de file2 pero sería “principal” de file3.

Cuando se anidan los archivos de inclusión y cuando se compila desde la línea de comandos, el directorio que busca comienza con los directorios de archivos primario y después continúa a través de los directorios de cualquier archivo de primario.Así, la búsqueda comienza en relación con el directorio que contiene el origen que se procesa actualmente.Si no se encuentra el archivo, la búsqueda se desplaza a los directorios especificados por la opción del compilador /I.Por último, los directorios especificados por la variable de entorno INCLUDE se buscan.

En el entorno de desarrollo, se omite la variable de entorno INCLUDE.Para establecer los directorios para buscar archivos de inclusión (esta información también se aplica a la variable de entorno LIB.), vea Directorios de VC++, proyectos, cuadro de diálogo opciones.

El ejemplo siguiente se muestra la inclusión del archivo con corchetes angulares:

#include <stdio.h>

Este ejemplo agrega el contenido del archivo denominado STDIO.H al programa de origen.Corchetes angulares haga el preprocesador para buscar en los directorios especificados por la variable de entorno INCLUDE para STDIO.H, después de buscar en los directorios especificados por la opción del compilador /I.

El ejemplo siguiente se muestra la inclusión del archivo con el formulario entre comillas:

#include "defs.h"

Este ejemplo agrega el contenido del archivo especificado por DEFS.H al programa de origen.Las comillas tipográficas indican que el preprocesador busca en el directorio que contiene el archivo de código fuente primario primero.

El anidamiento de archivos de inclusión puede continuar hasta 10 niveles.Una vez que se procesa #include anidado, el preprocesador siga insertando el archivo de inclusión que agrega en el archivo de código fuente original.

Específicos de Microsoft

Para buscar archivos de código fuente incluibles, el preprocesador busca primero los directorios especificados por la opción del compilador /I.Si la opción /I no está presente o no, el preprocesador utiliza la variable de entorno INCLUDE para buscar cualquier archivo de inclusión dentro de los paréntesis angulares.La variable de entorno INCLUDE y la opción del compilador /I pueden contener varias rutas separadas por puntos y coma (;).Si más de un directorio aparece como parte de la opción /I o en la variable de entorno INCLUDE, el preprocesador las busca en el orden en que aparecen.

por ejemplo, el comando

CL /ID:\MSVC\INCLUDE MYPROG.C

hace que el preprocesador para buscar d de directorio: \MSVC\INCLUDE for include files such as STDIO.H.los comandos

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

tiene el mismo efecto.Si se produce un error en ambos conjuntos de búsquedas, se genera un error grave del compilador.

Si el nombre de archivo se especifica completamente para un archivo de inclusión con una ruta que incluya un signo de dos puntos (por ejemplo, f: \MSVC\SPECIAL\INCL\TEST.H), el preprocesador sigue la ruta.

Para archivos de inclusión especificados como*ruta-especificación *de #include, el directorio que busca comienza con el directorio del archivo principal y después continúa a través de los directorios de cualquier archivo de primario.Así, la búsqueda comienza en relación con el directorio que contiene el archivo de código fuente que contiene la directiva de #include que se está procesando.Si no hay ningún archivo primario principal y el archivo no se ha encontrado, la búsqueda continuará como si el nombre de archivo se agregaron en corchetes angulares.

Específico de Microsoft de FINAL

Vea también

Referencia

Directivas de preprocesador