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