В ходе препроцессорной обработки вхождения
В ходе препроцессорной обработки вхождения идентификатора TEXT заменяются на строку замещения: 1234567890-= йцукенгшщзхъ\
Макроопределения define могут быть вложенными: #include <iostream.h> #define WHISKEY "ВИСКИ с содовой." #define MARTINI "МАРТИНИ со льдом и " WHISKEY void main() {cout << MARTINI;}
В результате выполнения последнего оператора выводится строка МАРТИНИ со льдом и ВИСКИ с содовой.
После каждого расширения препроцессор возвращается к началу файла, переходит к очередному макроопределению и повторяет процесс преобразования макроопределений. Препроцессорные замены не выполняются внутри строк, символьных констант и комментариев. При этом в замещающей части не должно быть вхождений замещаемой части макроопределения.
Так что макроопределение #define WHISKEY "стаканчик ВИСКИ " WHISKEY
обречено на неудачу.
В макроопределениях может встречаться несколько макроопределений с одной и той же замещаемой частью. При этом следует использовать в тексте программы директиву препроцессора #undef
ИмяЗамещаемойЧасти
Эта инструкция прекращает действие препроцессора по замене соответствующего идентификатора. #define PI 3.14 + 0.00159 float pi1 = PI; #undef PI #define PI 3.14159 float pi2 = PI;
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий