Partager via


Directives #ifdef et de #ifndef (C/C++)

Les directives de #ifdef et de #ifndef exécutent la même tâche que la directive d' #if lorsqu'elle est utilisée avec défini( ID ).

#ifdef identifier
#ifndef identifier

// equivalent to
#if defined identifier
#if !defined identifier

Notes

Vous pouvez utiliser #ifdef et les directives n'importe où #if de #ifndef peuvent être utilisées.L'instruction d'identificateur de #ifdefest équivalente à#if 1lorsque l'identificateur a été défini, et il est équivalent à#if 0lorsque l'identificateur n'a pas été défini ou a été défini avec la directive d' #undef .Ces directives vérifient que la présence ou l'absence d'identificateurs définis avec #define, pas pour les identificateurs déclarés dans le code source C ou C++.

Ces directives sont fournies uniquement pour la compatibilité avec les versions antérieures du langage.L'expression constante de **)**d'identificateurde **la valeur (**utilisée avec la directive d' #if est favorite.

La directive de #ifndef vérifie l'inverse de la condition activée par #ifdef.Si l'identificateur n'a pas été défini (ou sa définition a été supprimée avec #undef), la condition est vraie (différent de zéro).Sinon, la condition a la valeur false (0).

Spécifique à Microsoft

L'identificateur peut être passé à partir de la ligne de commande à l'aide de l'option /D.jusqu'à 30 macros peuvent être spécifiées avec /D.

Ceci est utile pour vérifier si une définition existe, car une définition peut être passée à partir de la ligne de commande.Par exemple :

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

détail de FIN Microsoft

Voir aussi

Référence

Directives de préprocesseur