Atividade complementar 2
O pré-processador C é um programa que examina o programa fonte escrito em C e executa certas modificações nele, baseado nas diretivas de compilação (ou diretivas do pré-processador). As diretivas de compilação são comandos que não são compilados, sendo dirigidos ao pré-processador, executado pelo compilador antes da execução do processo de compilação propriamente dito.
Portanto, o pré-processador modifica o programa fonte, que ainda não estaria pronto para ser entregue ao compilador. Todas as directivas de compilação são iniciadas pelo caractere # (sharp). As diretivas podem ser colocadas em qualquer parte do programa, mas não podem ser colocadas na mesma linha que outra diretiva ou instrução.
Diretivas de compilação
#if
A diretiva #if tem a seguinte forma geral:
#if expressão código ...
#endif
A sequência de declarações será compilada apenas se a expressão fornecida for verdadeira. É muito importande ressaltar que a expressão fornecida não pode conter nenhuma variável, apenas valores constantes e símbolos do pré-processador.
#else
A diretiva #else funciona como na estrutura de bloco if (condição) {...} else {...}:
#if expressão /* ou #ifndef expressão */ código /* será executado se a expressão for verdadeira */
#else
código /* será executado se a expressão for falsa */
#endif
Um exemplo:
#define WINDOWS
...
/* código */
...
#ifdef WINDOWS
#define CABECALHO "windows_io.h"
#else
#define CABECALHO "unix_io.h"
#endif
#include CABECALHO
#elif
A diretiva #elif serve para implementar uma estrutura do tipo if (condição) {...} else if (condição) {...}. Sua forma geral é:
#if expressão_1 código
#elif expressão_2 código
#elif expressão_3 código
.
.
.
#elif expressão_n código
#endif
Podemos também misturar diretivas #elif com #else; obviamente, só devemos usar uma diretiva #else e ela deve ser a última (antes de #endif).
#ifdef e #ifndef
O pré-processador também tem estruturas