#include
 Incluye un fichero de cabecera en el módulo fuente actual
------------------------------------------------------------------------------
 Sintaxis

     #include "<EspecFicheroCabecera>"

 Argumentos

     <EspecFicheroCabecera> especifica el nombre de un fichero de
     cabecera que se va a incluir en el módulo fuente actual. Como se indica
     en la sintaxis, el nombre debe ir indicado entre comillas dobles.

     <EspecFicheroCabecera> puede contener una vía de acceso explícita y
     el nombre y extensión del fichero. Si se omite la vía de acceso, el
     preprocesador busca en los siguientes lugares:

      Directorio del módulo fuente

      Directorios indicados con la opción /I

      Directorios especificados en la variable de entorno INCLUDE

     Las directivas #include pueden anidarse hasta en 15 niveles, es decir,
     un fichero incluido puede contener otras directivas #include hasta 15
     niveles.

 Descripción

     #include inserta el contenido del fichero especificado en el lugar en
     que se encuentra la directiva #include en el módulo fuente. El fichero
     insertado se denominará fichero de cabecera. Los ficheros de cabecera
     deberían contener sólo directivas del preprocesador y declaraciones
     externas. En CA-Clipper estos ficheros llevan la extensión .ch.

     Tiene dos opciones para ubicar sus ficheros de cabecera: en el
     directorio donde se encuentre el módulo fuente (donde ambos son locales
     para el sistema actual) o en el directorio especificado en la variable
     de entorno INCLUDE para que estén siempre disponibles. Puede
     especificar una lista de uno o más directorios.

     Los ficheros de cabecera evitan el gran inconveniente de definir
     constantes o funciones en línea. La directiva #define sólo afecta al
     fichero en el que está contenida. Por ello, todos los programas que
     necesiten acceder a estas sentencias deben tener una lista de
     directivas al principio. La solución a este problema es situar las
     sentencias #define en un fichero independiente y utilizar la directiva
     #include para indicar al preprocesador que incluya ese fichero antes de
     compilar.

     Por ejemplo, suponga que el fichero "Inkey.ch" contiene una lista de
     directivas #define que asignan valores de tecla a constantes. En lugar
     de incluir estas directivas en la parte superior de cada módulo fuente
     (.prg) que requiera utilizarlas, escriba simplemente la línea
     siguiente en cada módulo fuente:

     #include "Inkey.ch"

     Mediante esta línea el preprocesador busca el fichero Inkey.ch y sitúa
     en la parte superior del programa todas las directivas que contiene.

     Otra ventaja de la directiva #include es que agrupa todas las
     sentencias #define en un fichero. Si desea modificar alguna de estas
     sentencias, sólo es preciso intervenir en el fichero de cabecera sin
     necesidad de modificar el programa.

     Recuerde que el ámbito de las definiciones en un fichero de cabecera es
     el módulo actual, a menos que el fichero de cabecera se incluya en la
     línea de mandatos del compilador con la opción /U. En este caso, el
     ámbito se amplía a todos los ficheros de programa compilados en la
     invocación actual del compilador.

 Notas

     ■ Ficheros de cabecera suministrados: CA-Clipper dispone de
        cierto número de ficheros de cabecera que contienen constantes
        declaradas para las operaciones comunes. Consulte el directorio
        \CLIP53\INCLUDE.

     ■ Std.ch-el fichero de cabecera estándar: Std.ch es el fichero
        de cabecera estándar distribuido con CA-Clipper. Está ubicado por
        defecto en \CLIP53\INCLUDE. Contiene la definición de todos los
        mandatos y funciones estándar de CA-Clipper especificados como
        pseudofunciones. No conviene realizar cambios en el propio fichero
        Std.ch., pero si fuera a efectuar alguna modificación, le
        aconsejamos hacer una copia de Std.ch con un nuevo nombre, realizar
        los cambios en este nuevo fichero y compilar con la opción /U.

        Este fichero de cabecera difiere de cualquier fichero de cabecera
        especificado con #include en que todo lo que en él se defina
        mediante #define, #translate o #command tendrá un ámbito de
        aplicación de toda la compilación y no sólo del módulo fuente
        actual.

 Ejemplos

      Este ejemplo utiliza #include para insertar Inkey.ch, un
        fichero con las definiciones comunes de teclado, en un controlador
        de excepciones de teclado invocado por una función interfaz:

        #include "Inkey.ch"

        FUNCTION LeerEvento()
           LOCAL nTecla, nResultado
           nTecla = INKEY(0)
           DO CASE
           CASE nTecla = K_F10
              nResultado := HacerMenu("Examinar")
           CASE nTecla = K_ESC
              nResultado := HacerSalir()
              .
              . <sentencias>
              .
           CASE nTecla = K_CTRL_RIGHT
              nResultado := SigRegistro()
           ENDCASE
           RETURN nResultado

 To download this example - click here.

See Also: #command #define