У меня есть вопрос о директивах препроцессора в c ++:
Например:
#ifndef QUESTION //some code here #ifndef QUESTION //some code here #endif #endif
Можем ли мы использовать его таким образом, и может ли компилятор C ++ соответствовать ifndef и endif правильно?
ifndef
endif
Да, мы можем. Оператор #endif соответствует предыдущему #if #ifdef или #ifndef и т. Д., Для которого не было соответствующего #endif.
#endif
#if
#ifdef
#ifndef
, например
#if ----------| #if -----| | #endif ---| | #endif --------|
Да, вы можете вкладывать #if / #endif блоки.В некоторых стилях программирования на C вам нужно написать
#ifdef CONDITION1 # ifdef CONDITION2 # endif #endif
, используя пробелы для обозначения уровня вложенности.
В вашем коде раздел #ifndef QUESTION будет отброшен, если вы не #undef QUESTION.
Удачи!