Baixe o app para aproveitar ainda mais
Prévia do material em texto
Antonio Podgorski afbezerra@unicarioca.edu.br PRÉ-PROCESSADOR E DIRETIVAS 1. Definição de Pré-Processador 2. Exemplos de Diretivas 3. Diretiva #define, #include 4. Diretivas de Compilação Condicional Plano de Aula Definição O pré-processador é um programa que faz alguns processamentos simples antes do compilador. Ele é executado automaticamente todas as vezes que seu programa é compilado, e os comandos a serem executados são realizados através de diretivas do pré-processador. Diretivas Estas diretivas são colocadas em linhas que contém somente a diretiva, as linhas que começam com um # são comandos para o pré-processador. A linha inteira é reservada para este comando (nenhum código C pode aparecer nesta linha e comandos do pré-processador não podem estar separados em diversas linhas). Exemplos de Diretivas #if #ifdef #ifndef #else #elif #endif #include #define #undef #line #error #pragma Diretiva #define A diretiva #define define um identificador e uma string que o substituirá toda vez que for encontrado no arquivo-fonte. O padrão C ANSI refere-se ao identificador como um nome de macro e ao processo de substituição como substituição de macro. A forma geral da diretiva é : #define nome_macro string Diretiva #define Uma vez que um nome de macro tenha sido definido, ele pode ser usado como parte da definição de outros nomes de macro. Por exemplo, este código define os valores UM, DOIS e TRES: #define UM 1 #define DOIS UM+UM #define TRES UM+DOIS Diretiva #include A diretiva #include instrui o compilador a ler outro arquivo-fonte adicionado àquele que contém a diretiva #include. O nome do arquivo adicional deve estar entre aspas ou símbolos de maior e menor. Por exemplo, #include "stdio.h" #include <stdio.h> Diretiva #include A diretiva #include instrui o compilador a ler outro arquivo-fonte adicionado àquele que contém a diretiva #include. O nome do arquivo adicional deve estar entre aspas ou símbolos de maior e menor. Por exemplo, #include "stdio.h" #include <stdio.h> ? Diferenças Ambas instruem o compilador a ler e compilar o arquivo de cabeçalho para as rotinas de arquivos em disco da biblioteca. Diretiva #include Se o nome do arquivo está envolvido por chaves angulares (sinais de maior e menor), o arquivo será procurado de forma definida pelo criador do compilador. Frequentemente, isso significa procurar em algum diretório especialmente criado para arquivos de inclusão. Se o nome do arquivo esta entre aspas, o arquivo é procurado de uma maneira definida pela implementação. Para muitas implementações, isso significa uma busca no diretório de trabalho atual. Se o arquivo não for encontrado, a busca será repetida como se o nome do arquivo estivesse envolvido por chaves angulares. O uso de aspas é reservado geralmente para a inclusão de arquivos do projeto. Diretiva #include aninhados Arquivos de inclusão podem ter diretivas #include neles. Isso é denominado includes aninhados. O número de níveis de aninhamento varia entre compiladores. Porém, o padrão C ANSI estipula que pelo menos oito níveis de inclusões aninhadas estão disponíveis. ”Mãe, eu quero ter o meu próprio arquivo no #include" Manter a casa organizada com #include core_math.c #include "core_math.h" int cm_double(int x){ return x * 2; } core_math.h #ifndef core_math_h #define core_math_h int cm_double(int x); #endif main.c #include <stdio.h> #include "core_math.h" int main() { printf("%d",cm_double(4)); return 0; } Diretivas de Compilação Condicionais São diretivas que permitem que sejam complilados seletivamente trechos de código fonte. Este processo é conhecido por compilação condicional e é utilizado para facilitar programas que precisam manter diversas versões de um programa. As mais comumente utilizadas são:#if, #else, #elif, #endif E outras como: #ifdef, #ifndef (volte um slide e veja o exemplo) Diretivas de Compilação Condicionais #include <stdio.h> #define VERSAO 5 int main(){ #if VERSAO < 5 printf ("Para continuar utilizando atualize o sistema\n"); return 1; #elif VERSAO >=5 && VERSAO < 10 printf ("recomensa-se atualizar o sistema\n"); #endif printf("linhas de codigo do programa\n"); return 0; } Dúvidas
Compartilhar