Pré-Processador E Suas Diretivas De Compilação
Trabalho Universitário: Pré-Processador E Suas Diretivas De Compilação. Pesquise 862.000+ trabalhos acadêmicosPor: adylsonbg • 13/1/2014 • 966 Palavras (4 Páginas) • 325 Visualizações
Índice
Pré-Processador 2
Diretivas de Compilação 2
#include 2
#define 3
#undef 4
#ifdef e # ifndef 4
#ifdef 5
#ifndef 5
#if 5
#else 6
#elif 7
Utilização das Diretivas de Compilação 7
Concatenação 8
Participantes: 9
Pré-Processador
O pré-processador é a primeira etapa da compilação, pode ser ou não um programa separado do compilador, mas o que importa mesmo é que ele é o primeiro a “tocar” o código e cuida de algumas tarefas como:
• Junta linhas que foram separadas por sequências de escape.
• Remove comentários e os substitui por espaços em branco
• Expande macros
• Processa diretivas de pré-processamento
O pré-processador C é um programa que examina o programa fonte escrito em C e executa certas modificações no mesmo, baseado nas Diretivas de Compilação.
Diretivas de Compilação
As diretivas de compilação são comandos que não são compilados, sendo dirigidos ao pré-processador, que é executado pelo compilador antes da execução do processo de compilação propriamente dito. Portanto, o pré-processador modifica o programa fonte, entregando para o compilador um programa modificado. Todas as diretivas de compilação são iniciadas pelo caractere #. As diretivas podem ser colocadas em qualquer parte do programa.
As diretivas do C são identificadas por começarem por #. As principais diretivas de compilação são:
a. #include
b. #define
c. #undef
d. #ifdef
e. #ifndef
f. #if
g. #else
h. #elif
#include
A diretiva #include diz ao pré-processador para incluir naquele ponto um arquivo especificado. Sua sintaxe é:
#include "nome_do_arquivo"
ou
#include <nome_do_arquivo>
A diferença entre se usar "" e <> é somente a ordem de procura nos directórios pelo arquivo especificado. Se você quiser informar o nome do arquivo com o caminho completo, ou se o arquivo estiver no directório de trabalho, use "arquivo". Se o arquivo estiver nos caminhos de procura pré-especificados do compilador, isto é, se ele for um arquivo do próprio sistema (como é o caso de arquivos como stdio.h, string.h, etc...), use <arquivo>.
Exemplo :
#include <stdio.h>
#include “funcao.h”
int main()
{
int x;
x = 5;
IncImprime(x);
printf("%d",x);
return 0;
}
#define
A diretiva #define pode ser usada para definir constantes simbólicas com nomes apropriados e tem a seguinte forma geral:
#define nome_da_macro sequência_de_caracteres
Quando você usa esta diretiva, você está dizendo ao compilador para que, toda vez que ele encontrar o nome_da_macro no programa a ser compilado, ele deve substituí-lo pela sequência_de_caracteres fornecida. Isto é muito útil para deixar o programa mais geral.
Exemplo :
#include <stdio.h>
#define PI 3.1416
#define VERSAO "2.02"
int main ()
{
printf ("Programa versão %s\n", VERSAO);
printf ("O numero pi vale: %f\n", PI);
return 0;
}
#undef
A diretiva #undef tem a seguinte forma geral:
#undef nome_da_macro
Ela faz com que a macro que a segue seja apagada da tabela interna que guarda as macros. O compilador passa a partir deste ponto a não conhecer mais esta macro, remove a definição criada com #define.
#ifdef e # ifndef
Elas são muito parecidas com os comandos de execução condicional do C. As duas primeiras diretivas que veremos são as #ifdef e #endif. Suas formas gerais são:
#ifdef nome_da_macro
sequência_de_declarações
#endif
#ifdef
O pré-processador também tem estruturas condicionais. No entanto, como as diretivas são processadas antes de tudo, só podemos usar como condições expressões que envolvam constantes e símbolos do pré-processador. A estrutura ifdef é a mais simples delas:
#define PORT_0 0x378
...
/* Linhas de codigo qualquer... */
...
#ifdef PORT_0
#define PORTA PORT_0
#include "../sys/port.h"
#endif
A sequência de declarações
...