domingo, 21 de abril de 2019

Directiva ou Pré processor


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:


Resultado da execução:

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:


Resultado da execução:

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.


Crie o ficheiro macros.h, para isso abra o programa notepad usando a opção start/notepad.

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
 
Share:

0 comentários:

Enviar um comentário

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir