- •Предисловие.
- •1. Основные сведения, необходимые для создания программ на языке c.
- •1.1 Общая характеристика языка c.
- •1.2. Процесс создания исполняемого файла.
- •1.3. Распределение памяти программы.
- •1.4. Основные правила работы с программами.
- •2. Программная имитация электронных схем.
- •3. Описание программы образца.
- •3.1. Подпрограммы общего назначения.
- •3.2. Подпрограммы мехатронного объекта.
- •3.3. Подпрограммы графических примитивов.
- •3.4. Подпрограммы системных сообщений.
- •3.5. Подпрограммы звуковой сигнализации.
- •3.6. Глобальные константы и переменные.
- •4. Тексты исходных файлов программы образца.
- •4.1. Подпрограммы общего назначения.
- •4.2. Подпрограммы мeхатронного объекта.
- •4.3. Подпрограммы графических примитивов.
- •4.4. Подпрограммы системных сообщений.
- •4.5. Подпрограммы звуковой сигнализации.
- •4.6. Глобальные константы и переменные.
- •5. Методические указания к лабораторным работам.
- •6. Задания на выполнение лабораторных работ.
- •6.1. Лабораторная работа 1. Разработка графического отображения титульного листа программы.
- •6.2. Лабораторная работа 2. Разработка логической схемы мехатронного объекта.
- •6.3. Лабораторная работа 3. Разработка графического отображения логической схемы мехатронного объекта.
- •6.4. Лабораторная работа 4. Разработка графического отображения работы логической схемы мехатронного объекта.
- •6.5. Лабораторная работа 5. Разработка средств сигнализации (системные сообщения, звуковая сигнализация, дата, время).
- •7. Варианты лабораторных работ.
- •8. Описание dvd диска
- •Литература.
- •Содержание.
1.2. Процесс создания исполняемого файла.
-
Исходный файл (текст программы на языке программирования C) создается в редакторе системы программирования, например, Borland C++.
-
Расширенный исходный файл получается на этапе, предшествующем компиляции исходного файла, с помощью программы ПРЕПРОЦЕССОР (входит в программу компилятор). На входе препроцессора – исходный текст с директивами препроцессора, которые отмечены символом #. На выходе – расширенный исходный файл, полученный в результате выполнения директив. В частности, препроцессор подключает к исходному файлу заголовочные файлы (имеют традиционно расширение .h), в которых содержатся константы функций, шаблоны структур, программные интерфейсы (прототипы) функций. Заголовочные файлы, входящие в стандарты языка C, называются стандартными заголовочными файлами. Названия их являются зарезервированными именами (т.е. могут использоваться только для обозначения этих файлов). В конкретных компиляторах могут быть дополнительные заголовочные файлы. Кроме того, для связи с графическими функциями используются соответствующие графические заголовочные файлы.
-
Объектный файл получается на этапе компиляции расширенного исходного файла с помощью программы КОМПИЛЯТОР. Он содержит двоичные машинные инструкции (объектные коды).
-
Исполняемый файл (загрузочный модуль) получается на этапе компоновки объектных файлов с помощью программы ЛИНКЕР (РЕДАКТОР СВЯЗИ, КОМПОНОВЩИК). Он содержит не только код объектного файла, но и коды подпрограмм из библиотечных файлов. Исполняемый файл готов к выполнению центральным процессором ЭВМ [4].
СХЕМА ПРОЦЕССА СОЗДАНИЯ ИСПОЛНЯЕМОГО ФАЙЛА.
|
|
ПРОГРАММЫ, |
ФАЙЛЫ |
|
ОБРАБАТЫВАЮЩИЕ ФАЙЛЫ |
ИСХОДНЫЙ ФАЙЛ f.c (язык C) |
ОБРАБАТЫВАЕТ |
ПРЕПРОЦЕССОР |
|
|
|
РАСШИРЕННЫЙ ИСХОДНЫЙ ФАЙЛ (язык C) |
ОБРАБАТЫВАЕТ |
КОМПИЛЯТОР |
|
|
|
ОБЪЕКТНЫЙ ФАЙЛ f.obj (язык двоичных кодов) |
ОБРАБАТЫВАЕТ |
ЛИНКЕР (РЕДАКТОР СВЯЗЕЙ, КОМПОНОВЩИК) |
|
|
|
ИСПОЛНЯЕМЫЙ ФАЙЛ (ЗАГРУЗОЧНЫЙ МОДУЛЬ) f.exe (язык двоичных кодов) |
|
|
1.3. Распределение памяти программы.
Скомпилированная с языка C программа имеет четыре логически обособленные области памяти [7]:
ОБЛАСТЬ СТЕКА ДЛЯ ХРАНЕНИЯ ПЕРЕМЕННЫХ (АДРЕСОВ ВОЗВРАТА ФУНКЦИЙ, АРГУМЕНТОВ ФУНКЦИЙ, ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ И ДР.). |
ОБЛАСТЬ ДИНАМИЧЕСКИ РАСПРЕДЕЛЯЕМОЙ ПАМЯТИ (КУЧА). |
ОБЛАСТЬ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ. |
ОБЛАСТЬ ИСПОЛНЯЕМОГО КОДА ПРОГРАММЫ. |