#include
 Inclui um arquivo dentro do arquivo corrente
------------------------------------------------------------------------------

 Sintaxe

     #include "<especArqHeader>"

 Argumentos

     <especArqHeader> especifica o nome de outro arquivo fonte a ser
     incluso dentro do arquivo fonte corrente.  Como indicado pela sintaxe,
     o nome deve vir entre aspas.

     Como qualquer identificaçao de arquivo, o nome do arquivo header deve
     incluir rota e extensao, contudo na falta da rota, o pré-processador
     procurará pelo arquivo em:

       Diretório de arquivos fonte

       Diretórios supridos com a opçao /I

       Diretórios especificados na variável ambiental INCLUDE

     Diretivas #include podem ser aninhadas até 16 níveis--isto é, um
     arquivo sendo incluído pode ter outra diretiva #include e assim
     sucessivamente até 16 níveis.

 Descriçao

     #include insere o conteúdo do arquivo especificado no local da diretiva
     no arquivo corrente.  Por convençao, o arquivo inserido é denominado
     arquivo header.  Arquivos header podem conter qualquer tipo de
     declaraçao, incluindo declaraçoes da linguagem e diretivas de
     pré-processador.  Por convençao os arquivos header Clipper tem a
     extensao (.ch).

     Quando for decidir onde colocar seus arquivos header, você tem duas
     escolhas básicas.  Você pode colocá-los no diretório onde todos os
     fontes do sistema que você está trabalhando estao ou, você pode
     torná-los globalmente disponíveis colocando-os no diretório
     especificado pela variável INCLUDE.  Uma lista de um ou mais diretórios
     pode ser especificada.

     Arquivos header oesao usados para passar por cima de um dos
     inconvenientes da diretiva #define.  Isto é, cada programa que
     necessitar acessar as constantes ou pseudo-funçoes criadas com define
     deve ter estas definiçoes no início do arquivo. A soluçao é colocar
     todos os #define num arquivo separado e usar a diretiva #include para
     dizer ao pré-processador para incluir este arquivo antes de compilar.

     Por exemplo, suponha que o arquivo "Inkey.ch" contenha uma lista de
     valores de teclas atribuídas a constantes.  Ao invés de incluir estas
     constantes no topo de cada arquivo de programa (.prg), você
     simplesmente coloca esta linha no início de cada um:

     #include "Inkey.ch"

     Isto faz com que o pré-processador coloque todas as diretivas do
     arquivo Inkey.ch no topo do arquivo de programa.

     Outra vantagem do uso de #include é aquela de fazer com que todos as
     diretivas #define estejam num só arquivo.  Se qualquer modificaçao for
     necessária, somente o arquivo determinado em #include precisa ser
     alterado; o programa em si permanece intocado.

     Note que a abrangência das definiçoes dentro do arquivo header é o
     arquivo de programa corrente, a menos que o arquivo header seja
     incluído na linha de comando de compilador com a opçao /U.  Neste caso,
     isto será para todos os arquivos de programa dentro daquela chamada ao
     compilador.

 Notas

       Arquivos header fornecidos: Clipper 5.0 é suprido com
        vários arquivos header contendo constantes manifestas para operaçoes
        mais comuns. Olhe no diretório \CLIPPER5\INCLUDE.

       STD.CH--o arquivo header padrao: STD.CH é o arquivo
        header padrao fornecido com Clipper 5.0.  Sua localizaçao padao é
        \CLIPPER5\INCLUDE.  STD.CH contém as definiçoes de todos os comandos
        do Clipper 5.0 e as funçoes padrao definidas como pseudo-funçoes.

        Este arquivo difere um pouco dos arquivos que voce chama com
        #include.  Primeiro, ele nao pode conter código que nao sejam
        diretivas ou declaraçoes EXTERNAL.  Segundo, tudo que for definido
        em STD.CH, seja com #define, #translate, ou #command, tem a
        abrangência da compilaçao inteira e nao só do arquivo fonte
        corrente.  Você pode fazer declaraçoes globais incluindo arquivos
        header no topo de cada arquivo fonte.  Isto permite descobrir de
        maneira fácil quando um identificador foi inicialmente definido.

 Exemplo

     O exemplo a seguir demonstra o uso de #include para inserir o arquivo
     Inkey.ch, um arquivo com definiçoes comuns de teclado, num manipulador
     de teclagem chamado por uma funçao de interface com o usuário:

     #include "Inkey.ch"

     FUNCTION GetEvent()
        LOCAL nKey, nResult
        nKey := INKEY(0)
        IF nKey == K_F10
           nResult := Menu("Browse")
        ELSEIF nKey == K_ESC
           nResult := QuitExe()
           .
           . <instruçoes>
           .
        ELSEIF nKey == K_CTRL_RIGHT
           nResult := NextRec()
        ENDIF
        RETURN nResult
 To download this example - click here.

See Also: #command #define