средства Может ли#if директивы pre-processor быть вложенными в C++?




препроцессорные средства c++ (3)

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

#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif

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

У меня вопрос о предпроцессорных директивах в c ++:

Например:

#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif

#endif

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


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

Удачи!


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

например

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




preprocessor-directive