![](/user_photo/2706_HbeT2.jpg)
lec18
.pdf![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C841x1.jpg)
Включение текстов из файлов.
Для включения текста из файла используется команда ]include, имеющая три формы записи:
где имя_макроса - это введенный директивой ]define пропроцессорный идентификатор либо макрос, при замене которого после конечного числа подстановок будет получена последовательность символов <имя_файла> или "имя_файла".
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C842x1.jpg)
Включение текстов из файлов.
Если <имя_файла> в угловых скобках то препроцессор ищет файл в стандартных системных каталогах.
Если "имя_файла"в кавычках, то вначале препроцессор просматривает текущий каталог пользователя, а затем ищет файл в стандартных системных каталогах.
Суффикс .h (например <stdio.h>) приписывается тем файлам, которые содержат прототипы библиотечных функций, а также определение и описание типов и констант, используемых при работе с библиотеками компилятора.
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C843x1.jpg)
Список основных стандартных заголовочных файлов.
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C844x1.jpg)
Список основных стандартных заголовочных файлов (продолжение).
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C845x1.jpg)
Включение текстов из файлов.
Заголовочные нестандартные файлы являютcя эффективным средством при модульной разработке крупных программ, когда связь между модулями реализуется не только с помощью параметров, но и через внешние объекты, глобальные для нескольких или всех модулей.
Заголовочный файл может быть таким:
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C846x1.jpg)
Включение текстов из файлов.
Если в программе используется несколько функций, то часто удобно текст каждой из них хранить в отдельном файле. При подготовке программы в виде одного модуля программист включает в нее тексты всех функций с помощью команды
]include. Пример.
Имена файлов соответствуют именам функций с добавкой расширения ".c".
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C847x1.jpg)
Условная компиляция.
Условная компиляция обеспечивается в языке Си следующим набором директив:
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C848x1.jpg)
Условная компиляция.
Общая структура применения директив условной компиляции имеет вид:
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C849x1.jpg)
Условная компиляция.
![](/html/2706/188/html_y2UaDAuCWk.EINY/htmlconvd-sg97C850x1.jpg)
Условная компиляция.