· Исходный файл (текст программы на языке программирования Си) создается в редакторе системы программирования, например Borland C++.
· Расширенный исходный файл получается на этапе, предшествующем компиляции исходного файла, с помощью программы препроцессор (входит в компилятор). На входе препроцессора – исходный текст с директивами препроцессора (отмечены в исходном тексте символом #). На выходе – расширенный исходный файл, полученный в результате выполнения директив. В частности, препроцессор подключает к исходному файлу заголовочные файлы (имеют традиционно расширение .h), в которых содержатся константы функций, шаблоны структур, программные интерфейсы (прототипы) функций. Заголовочные файлы, входящие в стандарты языка Си, называются стандартными заголовочными файлами. Названия их являются зарезервированными именами (т.е. могут использоваться только для обозначения этих файлов). В конкретных компиляторах могут быть дополнительные заголовочные файлы. Кроме того, для связи с графическими функциями используются соответствующие графические заголовочные файлы.
· Объектный файл получается на этапе компиляции расширенного исходного файла с помощью программы компилятор. Он содержит двоичные машинные инструкции (объектные коды).
· Исполняемый файл (загрузочный модуль) получается на этапе компоновки объектных файлов с помощью программы линкер (редактор связи, компоновщик). Он содержит не только код объектного файла, но и коды подпрограмм из библиотечных файлов. Исполняемый файл готов к выполнению центральным процессором ЭВМ.
ПРОЦЕСС СОЗДАНИЯ ИСПОЛНЯЕМОГО ФАЙЛА.
ПРОГРАММЫ, | |||||
ФАЙЛЫ | ОБРАБАТЫВАЮЩИЕ ФАЙЛЫ | ||||
![]() | ОБРАБАТЫВАЕТ | ПРЕПРОЦЕССОР | |||
| |||||
![]() | ОБРАБАТЫВАЕТ | КОМПИЛЯТОР | |||
| |||||
![]() | ОБРАБАТЫВАЕТ | ЛИНКЕР (РЕДАКТОР СВЯЗЕЙ, КОМПОНОВЩИК) | |||
| |||||
ИСПОЛНЯЕМЫЙ ФАЙЛ (ЗАГРУЗОЧНЫЙ МОДУЛЬ) f.exe (язык двоичных кодов) |