- Включение исходных файлов (#include)
- Обзор директив макроподстановки
- Простая форма #define
- Форма #define в виде псевдо-функции
- Специальные операторы '#' и '##' внутри определений #define
- Отмена макроподстановки (#undef)
- Предопределенные константы препроцессора
- Условная компиляция (#ifdef/#ifndef/#else/#endif)
- Общие свойства программ (#property)
Отмена макроподстановки (#undef)
Зарегистрированные с помощью #define подстановки можно отменить, если они становятся не нужны после конкретного фрагмента кода. Для этих целей применяется директива #undef.
#undef макро_идентификатор |
В частности, она полезна, если в разных частях кода требуется определить один и тот же макрос по-разному. Если идентификатор, указанный в #define, уже был зарегистрирован где-то в более ранних строках кода (другой директивой #define), то старое определение заменяется на новое, а препроцессор выдает предупреждение "переопределение макроса" ("macro redefinition"). Использование #undef позволяет избавиться от предупреждения, и явным образом документирует намерение программиста не использовать дальше по коду конкретный макрос.
С помощью #undef нельзя отменить встроенные макроопределения.