Partager via


/D (Définitions de préprocesseur)

Mise à jour : novembre 2007

Définit un symbole de prétraitement pour votre fichier source.

/Dname[= | # [{string | number}] ]

Notes

Vous pouvez utiliser ce symbole avec #if ou #ifdef pour effectuer une compilation conditionnelle du code source. La définition de symbole reste en vigueur jusqu'à ce qu'une redéfinition soit rencontrée dans le code source ou que la définition du symbole soit annulée dans le code source avec la directive #undef.

/D produit un effet similaire à celui de la directive #define au début du fichier source. Cependant, /D supprime les guillemets sur la ligne de commande et #define les conserve.

Par défaut, la valeur associée à un symbole est 1. C'est-à-dire que /DTEST équivaut à /DTEST= 1. Dans l'exemple suivant, la définition de TEST affiche 1.

Lors d'une compilation avec /Dname=, aucune valeur n'est associée au symbole. Bien que le symbole puisse toujours être utilisé pour effectuer une compilation de code conditionnelle, il ne retourne rien. Par exemple, dans l'exemple de programme, une compilation avec /DTEST= provoque une erreur de compilateur. Ce comportement est similaire à l'utilisation de #define avec ou sans valeur.

La commande suivante définit le symbole DEBUG dans TEST.c :

CL /DDEBUG  TEST.C

La commande suivante supprime toutes les occurrences du mot clé __far dans TEST.c :

CL /D__far=  TEST.C

Vous ne pouvez pas définir la variable d'environnement CL en tant que chaîne contenant un signe égal. Pour utiliser l'option /D avec la variable d'environnement CL, vous devez spécifier un signe dièse à la place d'un signe égal :

SET CL=/DTEST#0

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Préprocesseur.

  4. Modifiez la propriété Définitions du préprocesseur.

Pour définir cette option du compilateur par programme

Exemple

// 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

Voir aussi

Référence

Options du compilateur

Définition des options du compilateur

/U, /u (Annuler la définition de symboles)

The #undef Directive

The #define Directive