У меня есть сомнения по поводу предложения в этом абзаце стандарта C11:
5.1.1.1 Структура программы
Программу на C не нужно переводить все одновременно. Текст программы хранится в единицах, называемых в настоящем стандарте исходными файлами (или файлами предварительной обработки). Исходный файл вместе со всеми заголовками и исходными файлами, включенными с помощью директивы предварительной обработки #include, известен как единица трансляции предварительной обработки.
Сначала говорится, что текст программы хранится в единицах, называемых исходными файлами. После этого говорится, что исходный файл вместе с заголовками и исходными файлами считается препроцессорной единицей перевода.
Так является ли исходный файл другим объектом по отношению к заголовочному файлу или исходный файл включает в себя и то, и другое?