/D (Präprozessordefinitionen)
Definiert ein Vorverarbeitungssymbol für eine Quelldatei.
/Dname[= | # [{string | number}] ]
Hinweise
Sie können dieses Symbol mit #if oder #ifdef zur bedingten Kompilierung der Quelle verwenden. Die Symboldefinitionen bleiben wirksam, bis in der Quelle eine Neudefinition gefunden oder die Symboldefinition mit der #undef-Direktive aufgehoben wird.
/D hat nahezu die gleiche Wirkung wie die Verwendung der #define-Direktive am Anfang der Quelldatei. /D entfernt jedoch Anführungszeichen in der Befehlszeile, während #define sie beibehält.
Standardmäßig wird einem Symbol der Wert 1 zugeordnet. Das heißt, /DTEST ist äquivalent zu /DTEST=1. Im folgenden Beispiel wird gezeigt, wie bei der Definition von TEST 1 ausgegeben wird.
Bei der Kompilierung mithilfe von /Dname= wird dem Symbol kein Wert zugeordnet. Obwohl das Symbol trotzdem zur bedingten Codekompilierung verwendet werden kann, ergibt das Symbol keinen Wert. So führt die Kompilierung mit /DTEST= im Beispielprogramm oben zu einem Compilerfehler. Dieses Verhalten ähnelt der Verwendung von #define mit oder ohne Wert.
Mit der nachfolgenden Befehlszeile wird das Symbol DEBUG in TEST.c definiert.
CL /DDEBUG TEST.C
Mit dem folgenden Befehl werden alle Vorkommen des Schlüsselworts __far aus TEST.C entfernt.
CL /D__far= TEST.C
Sie können die Umgebungsvariable CL nicht für eine Zeichenfolge festlegen, die ein Gleichheitszeichen enthält. Um /D zusammen mit der Umgebungsvariable CL zu verwenden, geben Sie ein Nummernzeichen anstelle eines Gleichheitszeichens an.
SET CL=/DTEST#0
Wenn Sie ein Vorverarbeitungssymbol an der Eingabeaufforderung definieren, sollten Sie Shell-Analyseregeln sowie Compileranalyseregeln berücksichtigen. Um beispielsweise ein Vorverarbeitungssymbol für ein Prozentzeichen (%) im Programm zu definieren, geben Sie zwei Prozentzeichen (%%) in der Befehlszeile an. Wenn Sie nur ein Prozentzeichen angeben, wird ein Analysefehler ausgegeben.
CL /DTEST=%% TEST.C
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.
Klicken Sie im linken Bereich auf C/C++ und dann auf Präprozessor.
Ändern Sie im rechten Bereich die Eigenschaft Präprozessordefinitionen.
So legen Sie diese Compileroption programmgesteuert fest
- Weitere Informationen finden Sie unter PreprocessorDefinitions.
Beispiel
// cpp_D_compiler_option.cpp
// compile with: /DTEST
#include <stdio.h>
int main( )
{
#ifdef TEST
printf_s("TEST defined %d\n", TEST);
#else
printf_s("TEST not defined\n");
#endif
}
Siehe auch
Referenz
Festlegen von Compileroptionen
/U, /u (Symboldefinitionen aufheben)
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2010 |
Es wurde hinzugefügt, dass zwei "%%"-Symbole zum Definieren eines "%"-Vorverarbeitungssymbols angegeben werden müssen. |
Korrektur inhaltlicher Fehler. |