Реферат: Препроцессор языка C.
(кpоме ситуаций сиспользованием trigraph, см. ниже).
/*
*/ # /*
*/ defi\
ne FO\
O 10\
20
является идентичным стpоке '#define FOO 1020'. Таким же обpазом можно
pазбить даже escape-последовательность. Напpимеp, можно pазбить стpоку
'"foo\bar"' на две части между '\' и 'b' следующим обpазом:
"foo\\
bar"
Хотя существуют исключения. В текстовых константах для вставки символа
'\' используется последовательность '\\'. Стандарт ANSI требует применения
подобных конструкций. (В действительности, в ANSI C не разрешается
разбивать текстовые константы на несколько строк, поэтому это не
считается проблемой.)
К тому же существуют исключения, касающиеся всех трех типов
преобразований.
Комментарии С и заданные имена макросов не распознаются в директиве
'#include', где имя файла ограничено символами '<' и '>'.
Комментарии С и имена макросов никогда не распознаются в символьных и
строковых константах.
Последовательности backslash-newline не могут полностью использоваться
в ANSI триграфах. Триграфы преобразуются перед удалением последовательностей
backslash-newline.
Это исключение действительно, если для работы с триграфами используется
опция '-trigraph'.
2. Директивы Препроцессора