Можно ли #если директивы препроцессора вложены в C++?



у меня есть вопрос о директив препроцессора в c++:



например:



#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif

#endif


можем ли мы использовать его таким образом, и может ли компилятор C++ соответствовать ifndef и endif в правильном направлении?

400   3  

3 ответов:

Да, мы можем. Элемент #endif оператор соответствует предыдущему #if#ifdef или #ifndef etc, для которого не было соответствующего #endif.

например

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

Да, вы можете гнездиться #if/#endif блоки. Некоторые стили кодирования C сказали бы вам написать

#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif

использование пробелов для обозначения уровня вложенности.

в вашем коде раздел #ifndef QUESTION будет отброшен, если вы не зададите вопрос #undef.

удачи!

Comments

    Ничего не найдено.