Реферат: Препроцессор языка C.

использовании всех директив препроцессора. (Длинное макроопределение можно

разбить на несколько строк с применением последовательности

backslash-newline.) Хотя существует одно исключение: символы перевода

строки могут быть вкючены в макроопределение если они находятся в строковой

или символьной константе, потому как макроопределение не может содержать

каких-либо специальных символов. Макроопределение автоматически дополняется

соответствующим специальным символом, который завершает строчную или

символьную константу. Комментарии в макроопределениях могут содержать символы

перевода строки, так как это ни на что не влияет, потому как все комментарии

полностью заменяются пробелами вне зависимости от того, что они содержат.

В отличие от выше сказанного, не существует никаких ограничений на

значение макроса. Скобки не обязательно должны закрываться. Тело макроса не

обязательно должно содержать правильный С код.

Препроцессор С обрабатывает программу последовательно, поэтому

макроопределения вступают в силу только в местах, где они используются.

Поэтому, после обработки следующих данных С препроцессором

foo = X;

#define X 4

bar = X;

получится такой результат

foo = X;

bar = 4;

После подстановки препроцессором имени макроса, тело макроопределения

добавляется к началу оставшихся вводимых данных и происходит проверка на

продолжение вызовов макросов. Поэтому тело макроса может содержать ссылки

на другие макросы. Например, после выполнения

#define BUFSIZE 1020

#define TABLESIZE BUFSIZE

значением макроса 'TABLESIZE' станет в результате значение '1020'.

К-во Просмотров: 654
Бесплатно скачать Реферат: Препроцессор языка C.