Pré processor
O pré-processador C modifica um arquivo fonte antes da compilação, permitindo a compilação condicional com #ifdef, definindo constantes com #define, incluindo arquivos de cabeçalho com #include e usando macros incorporadas, como __FILE__.
O
preprocessador oferece diversas diretivas, sendo que as principais
são #include
e
#define.
A DIRETIVA #define
A diretiva #define serve para definir constantes simbólicas que aumentam a legibilidade do código-fonte. Essa diretiva associa um identificador a um texto da seguinte maneira:
#define identificador texto
Exemplo:
Quando o programa passa pelo preprocessador, a diretiva #define é executada e, então, toda ocorrência da palavra diga é substituída por printf e toda ocorrência da palavra oi é substituída por “\nOlá, tudo bem?”.
No resultado da execução anterior o comando diga exibiu a mensagem Olá, tudo bem?, mas não conseguiu exibir devidamente palavras com acentos. Para efeitos de acentuação podemos recorrer a biblioteca locale.h, e a função setlocale() como ilustra a imagem abaixo:
Conforme mostra a imagem acima a palavra Olá já aparece acentuada devido ao uso da biblioteca locale.h.
A DIRETIVA #include
Outra diretiva bastante utilizada é #include. Essa diretiva, quando executada, faz com que uma cópia do arquivo cujo nome é dado entre < e > seja incluído no código-fonte. Por exemplo, suponha que definimos as macros a seguir e as salvamos num arquivo denominado macros.h:#define quad(n) ( (n)*(n) )
#define abs(n) ( (n)<0 ? −(n) : (n) )
#define max(x,y) ( (x)>(y) ? (x) : (y) )
Então, toda vez que precisarmos de um destes macros, não será preciso digitá-los novamente; basta solicitar ao preprocessador que inclua uma cópia do arquivo macros.h no início do nosso programa.
Clique no icon notepad para abrir a janela abaixo:
Digite o texto contido na janela abaixo
Clique
a opção file/save/ e grave em C:\Program Files
(x86)\Dev-Cpp\MinGW32\include conforme ilustra a imagem abaixo:
Introduz
o código abaixo
Resultado
da execução
Ao
passar pelo preprocessador, as ocorrências desse macro são
substituídas pela expressão n
*
n,
com o parâmetro n
devidamente
instanciado.
Observe que nenhum cálculo é realizado durante o preprocessamento e, portanto, ocorre uma simples substituição.
References
PEREIRA, S. L. Linguagem C
https://www.cprogramming.com/reference/preprocessor/
http://www.tutorialspoint.com/cplusplus/cpp_preprocessor.htm
https://www.techonthenet.com/c_language/directives/index.php
0 comentários:
Enviar um comentário