diretiva #define (constante)
Diretiva de pré-processador que atribui um nome significativo a uma constante em seu aplicativo.
#define identifiertoken-string |
---|
Parâmetros
Item | Descrição |
---|---|
Identificador |
Identificador da constante. |
token-string [opcional] |
Valor da constante. Esse parâmetro consiste em uma série de tokens, como palavras-chave, constantes ou instruções completas. Um ou mais caracteres de espaço em branco devem separar esse parâmetro do parâmetro identificador ; esse espaço em branco não é considerado parte do texto substituído, nem qualquer espaço em branco após o último token do texto. Se você excluir esse parâmetro, todas as instâncias do parâmetro identifier serão removidas do arquivo de origem. O identificador permanece definido e pode ser testado usando as diretivas #if definidas, #ifdef e #ifndef. |
Comentários
Todas as instâncias do parâmetro de identificador que ocorrem após a diretiva #define no arquivo de origem serão substituídas pelo valor do parâmetro token-string . O identificador é substituído somente quando forma um token; por exemplo, o identificador não será substituído se aparecer em um comentário, dentro de uma cadeia de caracteres ou como parte de um identificador mais longo.
A diretiva #undef instrui o pré-processador a esquecer a definição de um identificador; para obter mais informações, consulte Diretiva #undef (DirectX HLSL).
Definir constantes com a opção do compilador /D tem o mesmo efeito que usar a diretiva #define no início do arquivo. Até 30 constantes podem ser definidas com a opção /D. Para obter um exemplo de como isso pode ser usado, consulte a seção Exemplos de #ifdef e ).
Exemplos
O exemplo a seguir define o identificador WIDTH como a constante de inteiro 80 e define LENGTH em termos de WIDTH e a constante de inteiro 10.
#define WIDTH 80
#define LENGTH ( WIDTH + 10 )
Cada instância subsequente de LENGTH é substituída por (WIDTH + 10) e cada instância subsequente de WIDTH + 10 é substituída pela expressão (80 + 10). Os parênteses em torno de WIDTH + 10 são importantes porque controlam a interpretação em instruções como a seguinte.
var = LENGTH * 20;
Após a fase de pré-processamento, a instrução se torna a seguinte, que é avaliada como 1.800.
var = ( 80 + 10 ) * 20;
Sem parênteses, o resultado seria o seguinte, que é avaliado como 280.
var = 80 + 10 * 20;