Freigeben über


/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

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.

  2. Klicken Sie im linken Bereich auf C/C++ und dann auf Präprozessor.

  3. Ändern Sie im rechten Bereich die Eigenschaft Präprozessordefinitionen.

So legen Sie diese Compileroption programmgesteuert fest

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

Compileroptionen

Festlegen von Compileroptionen

/U, /u (Symboldefinitionen aufheben)

#undef Directive (C/C++)

#define Directive (C/C++)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juli 2010

Es wurde hinzugefügt, dass zwei "%%"-Symbole zum Definieren eines "%"-Vorverarbeitungssymbols angegeben werden müssen.

Korrektur inhaltlicher Fehler.