Вывод С препроцессора выглядит примерно так же, как и ввод, только все строки с директивами заменяются на пустые и комментарии заменяются пробелами. Пробелы в середине строки не меняются. Однако пробел вставляется после большинства макроподстановок.
Имя исходного файла и информация о номере строки передается в строках следующей формы:
# LINENUM FILENAME FLAGS
которые вставляются в середину вводимого файла (но не в строчную или
символьную константу). Появление такой строки означает, что следующая
строка содержится в файле FILENAME и имеет порядковый номер LINENUM.
После имени файла следует нуль или более флагов, значения которых могут быть '1', '2', '3' или '4'. Если флагов более одного, то они разделяются пробелами. Далее следует описание этих флагов.
Указывает на начало нового файла.
Указывает на возврат в файл (после включения другого файла).
Указывает на то, что следующий текст исходит из системного подключаемого файла, поэтому должны использоваться специальные предупреждающие сообщения.
Указывает на то, что следующий текст должен рассматриваться как С код.