Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Define um símbolo de pré-processamento para um arquivo de código-fonte.
Sintaxe
/D[ ]name[=|#[{ string | number }] ]
/D[ ]"name[=|#[{ string | number }] ]"
Comentários
Você pode usar esse símbolo junto com #if ou #ifdef para compilar o código-fonte condicionalmente. A definição de símbolo permanece em vigor até que seja redefinida no código ou indefinida no código por uma diretiva #undef.
/D tem o mesmo efeito que uma diretiva #define no início de um arquivo de código-fonte. A diferença é que /D tira as aspas na linha de comando e a diretiva #define as mantém. Você pode ter espaço em branco entre a /D e o símbolo. Não pode haver espaço em branco entre o símbolo e o sinal de igual ou entre o sinal de igual e qualquer valor atribuído.
Por padrão, o valor associado a um símbolo é 1. Por exemplo, /D name é equivalente a /D name=1. No exemplo no final deste artigo, a definição de TEST é mostrada para imprimir 1.
Compilar usando /D name= faz com que o símbolo name não tenha nenhum valor associado. Embora o símbolo ainda possa ser usado para compilar o código condicionalmente, em outros casos, sua avaliação não resulta em nada. No exemplo, se você compilar usando /DTEST=, ocorrerá um erro. Esse comportamento é semelhante ao uso de #define com ou sem um valor.
A opção /D não dá suporte a definições de macro semelhantes a funções. Para inserir definições que não possam ser definidas na linha de comando, considere a opção do compilador /FI (Inclusão de arquivo forçada pelo nome).
Você pode usar /D várias vezes na linha de comando para definir mais símbolos. Se o mesmo símbolo for definido mais de uma vez, a última definição será usada.
Este comando define o símbolo DEBUG em TEST.c:
CL /DDEBUG TEST.C
Esse comando remove todas as ocorrências da palavra-chave __far em TEST.c:
CL /D __far= TEST.C
A variável de ambiente CL não pode ser definida como uma cadeia de caracteres que contenha o sinal de igual. Para usar /D junto com a variável de ambiente CL, você deve especificar o sinal de número (#) em vez do sinal de igualdade:
SET CL=/DTEST#0
Quando você definir um símbolo de pré-processamento no prompt de comando, considere as regras de análise do compilador e do shell. Por exemplo, para definir um símbolo de pré-processamento de sinal porcentagem (%) em seu programa, especifique dois caracteres de sinal de porcentagem (%%) no prompt de comando. Se você especificar apenas um, será emitido um erro de análise.
CL /DTEST=%% TEST.C
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter mais informações, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Pré-processador.
Abra o menu suspenso da propriedade Definições do Pré-processador e escolha Editar.
Na caixa de diálogo Definições do Pré-processador, adicione, modifique ou exclua uma ou mais definições, uma por linha. Escolha OK para salvar suas alterações.
Você não precisa incluir o prefixo de opção "/D" nas definições especificadas aqui. Na página de propriedades, as definições são separadas por ponto-e-vírgula (
;).
Para definir essa opção do compilador via programação
- Consulte PreprocessorDefinitions.
Exemplo
// cpp_D_compiler_option.cpp
// compile with: cl /EHsc /DTEST cpp_D_compiler_option.cpp
#include <stdio.h>
int main( )
{
#ifdef TEST
printf_s("TEST defined %d\n", TEST);
#else
printf_s("TEST not defined\n");
#endif
}
TEST defined 1
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC
/FI (Inclusão de arquivo forçada pelo nome)
/U, /u (Indefinir símbolos)
Diretiva #undef (C/C++)
Diretiva #define (C/C++)