Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Diretivas de Pré processamento

Por:   •  3/4/2018  •  1.617 Palavras (7 Páginas)  •  341 Visualizações

Página 1 de 7

...

3 #error

Esta diretiva força o compilador para que encerre o programa e é usado para depuração:

#error mensagemdeerro

A mensagem de erro não deve ficar entre aspas. Quando esta mensagem é apresentada, ela será acompanhada por outras informações pré-definidas anteriormente.

4 #include

Talvez a diretiva mais importante até agora, pois é por meio dela que são atribuídas as bibliotecas ao programa. A diretiva #include instrui o programa a ler um arquivo fonte adicionado àquele que contém a diretiva #include. A restrição para esse comando é que o arquivo adicional deve estar entre sinais de menor e maior ou entre aspas:

#include

#include “stdlib.h”

Caso o nome arquivo adicional esteja entre chaves angulares (), ele será procurado de forma definida pelo compilador, ou seja, basicamente o programa irá procurar pelo arquivo numa pasta especificamente criada para esse fim, independente da implementação. Caso o nome do arquivo esteja entre aspas, o arquivo será procurado inicialmente no mesmo diretório em que o arquivo está sendo compilado.

A diretiva #include é muito usada para incluir alguns arquivos de standard header como . Além disso, essa diretiva pode ser usada para que o pré-processador compile um programa que contém vários arquivos fonte juntos.

5 Diretivas de compilação condicional (#if/#else/#elif/#endif)

Existem muitas diretivas que dá a liberdade para o programador compile porções do código fonte de modo seletivo. Essa seleção feita para compilação é chamada de compilação condicional, pois há condições para que o pré-processador compile o programa, obviamente. Devido à essa função, tal processo é muito utilizado em softwares comerciais que fornecem um programa e mantém muitas versões dos mesmos.

As diretivas que são mencionadas aqui (#if, #endif, #elif e #else) são as mais usadas, pois permitem ao programador que inclua, condicionalmente, partes de um código embasado no resultado de uma expressão constante. Sua forma natural pode ser representada da seguinte maneira:

#if expressãoconstante

...Comandos...

#endif

Se a expressão constante que segue o #if for falsa, o código entre #if e #endif não será executado. Para que o mesmo seja executado corretamente, a expressão constante deve ser verdadeira.

É estritamente importante lembrar que a diretiva #if deve – obrigatoriamente – ser acompanhada de uma expressão constante. Não se pode utilizar variáveis na associação à essa diretiva em hipótese alguma.

O comando #else faz – basicamente – a mesma coisa que o else faz em um programa normal: a função senão. Caso a expressão constante seja verdadeira, o programa começará a executar os comandos que estão no bloco de comando. Se a afirmação que segue #if for falsa, o pré-processador irá analisar a alternativa de #else e executará os comandos que estão no bloco de #else. Para melhor compreensão, veja o seguinte exemplo:

//Exemplo do comando #if, #else e #endif

#include

#include

#define VALOR 10

Void main (void) {

#if VALOR > 99

printf(“Valor maior\n”);

#else

Printf(“Valor menor\n”)

#endif

}

O valor atribuído à VALOR é 10. Como a condição de #if é que apareça a mensagem “Valor maior” caso VALOR seja maior que 99, a mensagem não será exibida. Ao invés disso, será exibida a mensagem “Valor menor”.

Com relação ao comando #elif, é perceptível que essa diretiva vem de else e if e estabelece a já conhecida relação if else-if else-if else. Assim como a diretiva #if, #elif necessita de uma expressão constante. Se tal expressão for verdadeira, o bloco de código é compilado normalmente e nenhum comando de outros blocos #elif é executado.

Outra diretiva que deve ser mencionada é #ifdef. Mas não há como falar de #ifdef sem mencionar o oposto: #ifndef. Os significados de #ifdef e #ifndef são “se definido” e ”se não definido”, respectivamente. Podemos colocar #ifdef do seguinte modo:

#ifdef nomedamacro

...Comandos...

#endif

OBS: Caso o nome da macro que acompanha #ifdef já tiver sido definido em uma diretiva #define, o bloco de código será executado normalmente. Em contrapartida, a diretiva #ifndef pode ser descrita por:

#ifndef nomedamacro

...Comandos...

#endif

OBS: Se o nome da macro estiver indefinido, o programa será compilado normalmente.

A última diretiva que vamos falar que está relacionada às diretivas de compilação condicional é #undef. É necessariamente o inverso da diretiva #define, pois tem a função de tirar uma definição de uma constante. Vemos conforme o exemplo a seguir:

#define PROG 100

#define IMP 50

char array [PROG][IMP];

#undef PROG

#undef IMP

/*A partir desse ponto PROG e IMP não estão mais definidos*/

A diretiva #undef é comumente utilizada para permitir que os nomes de macros sejam utilizados em seções específicas do código, quando é necessário.

6 typedef

Essa diretiva serve para definir novos nomes aos tipos

...

Baixar como  txt (10.7 Kb)   pdf (56.6 Kb)   docx (17.1 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no Essays.club