- Substituição de Macro (#define)
- Propriedades de Programa (#property)
- Incluindo Arquivos (#include)
- Importando Funções (#import)
- Conditional Compilation (#ifdef, #ifndef, #else, #endif)
Substituição de Macro (#define, #undef)
As diretivas do pré-processador são usadas pelo do compilador para pré-processamento do código fonte antes de sua compilação. A diretiva sempre começa com o # (jogo da velha), por isso o compilador proíbe o uso deste símbolo nos nomes das variáveis, funções, etc.
Cada diretiva é descrita por um registro separado e opera antes da mudança de linha. Não se podem utilizar várias diretivas num só registro. Se o registro da diretiva for muito grande, ele pode ser dividido em várias linhas usando a barra invertida '\', neste caso, a próxima linha é considerada uma continuação do registro da diretiva.
A diretiva #define pode ser usada para atribuir nomes mnemônicos a constantes. Existem duas formas:
#define identificador expressão // forma sem parâmetro
|
A diretiva #define substitui em expressão todas as entradas encontradas adiante do identificador no texto fonte. O identificador é substituído somente se ele é um símbolo (token) separado. O identificador não é substituído se ele é parte de um comentário, parte de uma string, ou parte de um outro identificador mais longo.
O identificador de constante é governado pelas mesmas regras de nomes de variáveis. O valor pode ser de qualquer tipo:
#define ABC 100
|
Uma expressão pode consistir de vários símbolos (tokens), tais como palavras chave, constantes, expressões constantes e não-constantes. Uma expressão termina com o fim da linha e não pode ser transferida para a próxima linha.
Exemplo:
#define TWO 2
|
Forma paramétrica do #define
Na forma paramétrica, todas as subseqüentes entradas encontradas do identificador serão substituídas pela expressão levando em conta os respectivos parâmetros. Por exemplo:
// exemplo com dois parâmetros a e b
|
Se assegure de colocar os parâmetros entre parênteses ao usar os parâmetros na expressão, uma vez que isso ajudará a evitar erros não óbvios que são difíceis de encontrar. Se reescrevermos o código sem o uso de parêntesis, o resultado será diferente:
// exemplo com dois parâmetros a e b
|
Ao usar a forma paramétrica, são permitidos no máximo 8 parâmetros.
// forma paramétrica correta
|
The #undef directive
The #undef directive cancels declaration of the macro substitution, defined before.
Example:
#define MACRO
|
Também Veja