Последовательность обработки программы на Си
Рассмотрим последовательность обработки файлов (файла) с исходным кодом на языке Си (Си++), файлов с расширением .c (.cpp) и превращения их в файл с исполняемым кодом (с расширением .exe) в операционных системах Windows. Последовательность обработки представлена на рисунке 7.
Препроцессор |
Исходный текст, файлы с расширением .c .cpp .h |
Компилятор |
Объектный код (файлы .obj) |
Компоновщик (редактор связей) |
Исполняемый код (файл .exe) |
Обработанный препроцессором текст (.c .cpp) |
Рисунок 7 – Последовательность обработки программы на языки Си (Си++)
Прокомментируем данный рисунок. На входе имеем некоторые файлы (один или несколько) с исходным кодом языка Си (Си++) (обычные текстовые файла в кодировке, принятой в операционной системе), файлы могут иметь расширения .c, .cpp, .h и др. Первоначально файлы обрабатываются специальной программой, называемой препроцессор. (Как правило, препроцессор является не отдельной программой, а входит в состав другой программы – компилятор, но стадия препроцессорной подготовки обычно рассматривается отдельно от компиляции). При препроцессорной обработке выполняются директивы препроцессора, например, директива include (включение файла), из исходного текста удаляются комментарии и выполняются некоторые другие действия. В итоге получаем файлы после препроцессорной обработке условно можно считать, что это файлы с расширениями .c или .cpp (следует отметить, что эти файлы не сохраняются на диске, а существуют в оперативной памяти, поэтому граница овалов на рисунке является пунктирной). Далее файлы с обработанным препроцессором исходным кодом обрабатываются специальной программой – компилятором. После обработки компилятором, если не выявлено ошибок, создаются файлы с двоичным кодом программы, файлы с расширением .obj (так называемый, объектный код). Далее эти файлы обрабатываются специальной программой, которая называется компоновщиков (Linker) или редактором связей, в результате работы этой программы, если не будет выявлено ошибок, происходит сборка отдельных файлов объектного кода в файл исполняемого кода с расширением .exe. Кроме того, при необходимости в файл исполняемого кода вставляются двоичные коды стандартных библиотечных функций языка Си.
Дата добавления: 2015-08-14; просмотров: 614;