#ifdef directives et #ifndef (C/C++)

Les #ifdef directives de préprocesseur et #ifndef ont le même effet que la #if directive lorsqu’elle est utilisée avec l' defined opérateur.

Syntaxe

#ifdef identifier
#ifndef identifier

Ces directives sont équivalentes à ce qui suit :

#if defined identifier
#if !defined identifier

Remarques

Vous pouvez utiliser les #ifdef directives et #ifndef partout où #if elles peuvent être utilisées. L' #ifdefidentifier instruction équivaut à #if 1 quand identifier a été défini. Elle est équivalente à #if 0 lorsque identifier n’a pas été défini ou qu’elle n’a pas été définie par la #undef directive. Ces directives vérifient uniquement la présence ou l'absence d'identificateurs définis avec #define, et non d'identificateurs déclarés dans le code source C ou C++.

Ces directives sont fournies uniquement pour des raisons de compatibilité avec les versions antérieures du langage. L' defined(identifier) expression constante utilisée avec la #if directive est préférée.

La #ifndef directive recherche l’inverse de la condition vérifiée par #ifdef . Si l’identificateur n’a pas été défini, ou si sa définition a été supprimée avec, la condition est true (différente de #undef zéro). Sinon, la condition n'est pas vérifiée (0).

Spécifique à Microsoft

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

La #ifdef directive est utile pour vérifier si une définition existe, car une définition peut être passée à partir de la ligne de commande. Exemple :

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

FIN spécifique à Microsoft

Voir aussi

Directives de préprocesseur