#ifdef
et #ifndef
directives (C/C++)
Les #ifdef
directives de préprocesseur ont #ifndef
le même effet que la #if
directive lorsqu’elle est utilisée avec l’opérateur defined
.
Syntaxe
#ifdef
identifier
#ifndef
identifier
Ces directives sont équivalentes à :
#if defined
identifier
#if !defined
identifier
Notes
Vous pouvez utiliser les directives et #ifndef
les #ifdef
directives n’importe où#if
. L’instruction #ifdef
identifier
est équivalente au moment identifier
où #if 1
elle a été définie. Elle équivaut au #if 0
moment identifier
où elle n’a pas été définie ou 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’expression defined(
)
identifier
constante utilisée avec la #if
directive est préférée.
La #ifndef
directive case activée pour l’opposé de la condition case activée ed par #ifdef
. Si l’identificateur n’a pas été défini ou si sa définition a été supprimée, #undef
la condition est vraie (différente de zéro). Sinon, la condition n'est pas vérifiée (0).
Section spécifique à Microsoft
L’identificateur peut être transmis à partir de la ligne de commande à l’aide de l’option/D
. Jusqu’à 30 macros peuvent être spécifiées avec /D
.
La #ifdef
directive est utile pour case activée déterminer si une définition existe, car une définition peut être transmise à partir de la ligne de commande. Par exemple :
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
FIN de la section spécifique à Microsoft
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour