Freigeben über


/D (Präprozessordefinitionen)

Aktualisiert: November 2007

Definiert ein Vorverarbeitungssymbol für die 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 mit /Dname= wird dem Symbol kein Wert zugeordnet. Obwohl das Symbol trotzdem zur bedingten Codekompilierung verwendet werden kann, wird das Symbol als leer ausgewertet. So führt die Kompilierung mit /DTEST= im Beispielprogramm oben zu einem Compilerfehler. Dieses Verhalten ist mit der Verwendung von #define mit oder ohne Wert vergleichbar.

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

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

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

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Präprozessor.

  4. Ändern Sie 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
}

TEST defined 1

Siehe auch

Referenz

Compileroptionen

Festlegen von Compileroptionen

/U, /u (Symboldefinitionen aufheben)

The #undef Directive

The #define Directive