Главная » Статьи » Програмування » C | [ Добавить статью ] |
Препроцессор.Препроцессор - это программа, которая производит некоторые (иногда весьма значительные) манипуляции с первоначальным текстом программы перед тем, как он подвергается компиляции. Будучи дословно переведенным, с английского, слово препроцессор означает предварительный обрабатыватель Препроцессоры создают входной текст для компиляторов и могут выполнять следующие функции:
Например, весьма часто в программах приходится использовать "ничего не говорящие" числа. Это могут быть какие-то математические константы или размеры используемых в программе массивов и т.д. Общепризнано, что обилие таких констант затрудняет понимание программ и считается признаком плохого стиля программирования. В среде программистов такие константы получили язвительное название магических чисел. Чтобы программа не изобиловала ими, языки программирования позволяют дать константе имя и далее использовать его везде вместо самой константы. В языке C такую возможность обеспечивает препроцессор. Например, с помощью определений
препроцессор заменит в программе все имена P1 и E на соответствующие числовые константы. Теперь, когда вы обнаружите, что неправильно написали приближенное значение основания натуральных логарифмов, вам достаточно исправить единственную строку с определением константы, а не просматривать всю программу:
Препроцессор языка C позволяет переопределять не только константы, но и целиком программные конструкции. Например, можно написать определение:
и затем всюду писать бесконечные циклы в виде:
А если вам не нравятся фигурные скобки, то определите
и далее используйте в качестве операторных скобок begin и end, как это делается, например, в языке Pascal. Подобные определения, называемые макроопределениями (макросами), могут иметь параметры (и вследствие этого быть еще более мощными), однако об этом чуть позже. Еще одна важная "услуга" препроцессора - включение в исходный текст содержимого других файлов. Эта возможность в основном используется для того, чтобы снабжать программы какими-то общими для всех файлов определениями. Например, чрезвычайно часто в начале программы на языке C встречается препроцессорная конструкция:
Когда исходный текст программы обрабатывается препроцессором, на место этой инструкции ставится содержимое файла iostream, содержащего макроопределения и объявления данных, необходимых для работы потоков ввода-вывода. Оператор (директива) препроцессора - это одна строка исходного текста, начинающаяся с символа #, за которым следуют название оператора (define, pragma, include, if) и операнды. Операторы препроцессора могут появляться в любом месте программы, и их действие распространяется на весь исходный файл. | |||||||||||||
Просмотров: 750 | |
Всего комментариев: 0 | |