/D (definizioni preprocessore)
Definisce un simbolo di pre-elaborazione per un file di origine.
Sintassi
/D
[ ]name[=
|#
[{ string | number }] ]
/D
[ ]"
name[=
|#
[{ string | number }] ]"
Osservazioni:
È possibile utilizzare questo simbolo con #if
o #ifdef
per compilare codice sorgente in modo condizionale. La definizione del simbolo rimane attiva fino a quando non viene ridefinita nel codice o non è definita nel codice da una #undef
direttiva.
/D
ha lo stesso effetto di una #define
direttiva all'inizio di un file di codice sorgente. La differenza è che /D
le virgolette sulla riga di comando e una #define
direttiva li mantiene. È possibile avere spazi vuoti tra e /D
il simbolo. Non è possibile inserire spazi vuoti tra il simbolo e il segno di uguale o tra il segno di uguale e qualsiasi valore assegnato.
Per impostazione predefinita, il valore associato a un simbolo è 1. Ad esempio, /D name
equivale a /D name=1
. Nell'esempio alla fine di questo articolo viene visualizzata la definizione di TEST
per stampare 1
.
La compilazione tramite /D name=
fa sì che il nome del simbolo non abbia alcun valore associato. Sebbene possa comunque essere utilizzato per la compilazione condizionale di codice, il simbolo non restituisce alcun valore. Nell'esempio, se si esegue la compilazione usando /DTEST=
, si verifica un errore. Questo comportamento è analogo all'utilizzo di #define
con o senza un valore.
L'opzione /D
non supporta definizioni di macro simili a funzioni. Per inserire definizioni che non possono essere definite nella riga di comando, prendere in considerazione l'opzione del /FI
compilatore (Nome forzato file di inclusione).
È possibile usare /D
più volte nella riga di comando per definire più simboli. Se lo stesso simbolo viene definito più volte, viene usata l'ultima definizione.
Questo comando definisce il simbolo DEBUG in TEST.c:
CL /DDEBUG TEST.C
Questo comando rimuove tutte le occorrenze della parola chiave __far
in TEST.c:
CL /D __far= TEST.C
La variabile di ambiente CL non può essere impostata su una stringa contenente il segno di uguale. Per usare /D
insieme alla CL
variabile di ambiente, è necessario specificare il segno di numero (#
) anziché il segno di uguale:
SET CL=/DTEST#0
Quando si definisce un simbolo di pre-elaborazione al prompt dei comandi, considerare le regole di analisi del compilatore e quelle della shell. Ad esempio, per definire un simbolo di pre-elaborazione del segno percentuale (%
) nel programma, specificare due caratteri di segno percentuale (%%
) al prompt dei comandi. Se si specifica solo uno, viene generato un errore di analisi.
CL /DTEST=%% TEST.C
Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà>di configurazione C/C++>Preprocessore.
Aprire il menu a discesa della proprietà Definizioni del preprocessore e scegliere Modifica.
Nella finestra di dialogo Definizioni del preprocessore aggiungere, modificare o eliminare una o più definizioni, una per riga. Scegli OK per salvare le modifiche.
Non è necessario includere il prefisso dell'opzione '/D' nelle definizioni specificate qui. Nella pagina delle proprietà le definizioni sono separate da punto e virgola (
;
).
Per impostare l'opzione del compilatore a livello di codice
- Vedere PreprocessorDefinitions.
Esempio
// 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
Vedi anche
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC
/FI
(Nome forzato file di inclusione)
/U
, /u
(simboli non definiti)
#undef
Direttiva (C/C++)
#define
Direttiva (C/C++)