87 votes

Les directives pré-processeur #if peuvent-elles être imbriquées en C++ ?

J'ai une question sur les directives du préprocesseur en c++ :

Par exemple :

#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif

#endif

Pouvons-nous l'utiliser de cette manière, et le compilateur C++ peut-il correspondre à l'option ifndef et endif de la bonne manière ?

116voto

Armen Tsirunyan Points 59548

Oui, nous le pouvons. Le site #endif correspond à la déclaration précédente #if #ifdef ou #ifndef etc. pour lesquels il n'y a pas eu de correspondance. #endif .

par exemple

#if  ----------|
#if  -----|    |
#endif ---|    |
#endif --------|

51voto

larsmans Points 167484

Oui, vous pouvez nicher #if / #endif blocs. Certains styles de codage C vous diraient d'écrire

#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif

en utilisant des espaces pour indiquer le niveau d'imbrication.

0voto

bert-jan Points 735

Dans votre code, la section #ifndef QUESTION sera ignorée à moins que vous ne #undef QUESTION.

Bonne chance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X