Partager via


Directives #ifdef et #ifndef

Directives de préprocesseur qui déterminent si une constante ou une macro de préprocesseur spécifique est définie.

identificateur #ifdef ...
#endif
identificateur de #ifndef ...
#endif

Paramètres

Élément Description
Identificateur
Identificateur de la constante ou de la macro à case activée.

Notes

Vous pouvez utiliser les directives #ifdef et #ifndef partout où les #if peuvent être utilisées. L’instruction #ifdef équivaut à la directive ) . Ces directives case activée uniquement pour la présence ou l’absence d’identificateurs définis à l’aide de la directive #define, et non pour les 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’utilisation de l’opérateur défini avec la directive #if est préférable.

La directive #ifndef vérifie l’inverse de la condition vérifiée par #ifdef. Si l’identificateur n’est pas défini, la condition est true (différente de zéro) ; sinon, la condition est false (zéro).

Exemples

identifier 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. Cela est utile pour vérifier si une définition existe, car une définition peut être transmise à partir de la ligne de commande. L’exemple suivant utilise ce comportement pour déterminer s’il faut exécuter une application en mode test.

// PROG.CPP
#ifndef test
  #define final
#endif
int main()
{
}

Lors de la compilation à l’aide de la commande suivante, prog.cpp est compilé en mode test ; sinon, elle sera compilée en mode final.

CL.EXE /Dtest prog.cpp

Voir aussi

Directives de préprocesseur (DirectX HLSL)

#if, )