Baixe o app para aproveitar ainda mais
Prévia do material em texto
Diretivas do Pré-Processador Profa. Dra. Ieda Hidalgo E-mail: iedahidalgo@ft.unicamp.br Pré-processador O pré-processador faz parte do compilador e é executado automaticamente antes da compilação. Diretivas Diretivas são as instruções que o pré- processador executa. Objetivos das Diretivas Alterar o código-fonte na sua forma de texto deixando o programa mais claro e fácil de realizar a manutenção. Instruções para o pré-processador fazem parte do texto que criamos, mas não farão parte do programa que compilamos, pois serão retiradas do texto pelo compilador antes da compilação. Características das Diretivas • Todas as diretivas do pré-processador são iniciadas com o símbolo “#”. • Não há ";" após diretivas. • Cada diretiva deve ser escrita numa linha nova. Localização das Diretivas As diretivas podem ser colocadas em qualquer lugar do programa. Geralmente são escritas no início do programas. Elas se aplicam do ponto onde são escritas ao final do programa fonte. Diretivas mais Utilizadas • # define • # undef • # include # define É usada para definir constantes simbólicas ou macros. Quando o compilador encontra a diretiva # define, ele procura em cada linha abaixo dela a ocorrência da palavra e a substitui. const inline Observações Não há substituição dentro de cadeias de caracteres (entre aspas) e comentários. Se a string de substituição for maior que uma linha, pode-se utilizar “\” e continuá-la na próxima linha. O qualificador const é reconhecido pelo compilador. Se uma constante declarada com “const” for usada de modo errado, o compilador acusará. O especificador inline do C++ realiza o mesmo objetivo da macro de maneira mais segura, pois é reconhecido pelo compilador. # undef Remove a definição mais recente criada com #define. não incluir a lista de argumentos # include Adiciona arquivos de cabeçalho (.h) no programa fonte. O compilador substitui a diretiva # include pelo conteúdo do arquivo indicado antes do programa ser compilado. Exemplos: #include <iostream.h> // o arquivo é procurado no diretório Include. #include "iostream.h" // o arquivo é procurado no diretório atual e depois no diretório Include. Observação A capacidade de #define e #include vai além da representação simbólica de constantes, macros e inclusão de arquivos. É possível até criar outra linguagem usando #define e #include. (Exemplo Victorine página 148). Diretivas Condicionais • # if (testa uma condição) • # ifdef (testa constantes definidas com #define – se definida) • # ifndef (verifica a não definição de uma constante – se não definida) • # else (uma única diretiva #else pode ser usada entre #if e #endif) • # elif (faz a função do "senão se") • # endif (usada para terminar uma diretiva #if) Um dos usos da compilação condicional é para a portabilidade do código. Ela é usada em grandes programas e em softwares comerciais que mantêm diferentes versões personalizadas de um programa. # if SYS == “IBM” # include “ibm.h” # endif Utilização das Diretivas Condicionais Outras Diretivas # error (Permite a apresentação de uma mensagem de erro do compilador em tempo de compilação) # if TAMANHO > X # error "Tamanho incompatível" # endif Operador defined (É uma alternativa ao uso de #ifdef e #ifndef) # ifdef MYFILE equivale a #if defined MYFILE Diretiva Pragma Permite que instruções definidas pelo criador do compilador sejam dadas para o compilador. Através da diretiva #pragma, o C++Builder define diretivas que podem ser passadas ao compilador. #pragma hdrstop Termina a lista de header files escolhidos para pré-compilação. Deve ser utilizada para reduzir o espaço em disco usado por header files de pré-compilação. Melhora o desempenho do compilador se os header files comuns são colocados antes de #pragma hdrstop, e os específicos são colocados depois desta diretiva. Deve ser utilizada em arquivos fonte. Ela não tem efeito quando usada em arquivos header (.h, .hpp etc). #include <vcl.h> // header files comuns #pragma hdrstop // fim da lista comum #include "Unit1.h" // header files específicos
Compartilhar