
- •31. Файлы. Разновидность файлов. Описание файлов.
- •Текстовые файлы. Назначение текстовых файлов. Открытие и закрытие файла.
- •Типизированные файлы. Описание типизированных файлов. Назначение типизированных файлов. Открытие и закрытие файлов.
- •Нетипизированные файлы. Описание нетипизированных файлов. Назначение нетипизированных файлов. Открытие и закрытие файлов.
- •Нетипизированные файлы. Назначение нетипизированных файлов. Запись в файл. Считывание из файла. Поиск в нетипизированном файле.
- •Модульность программ. Стандартные модули языка Pascal. Подключение модулей.
- •39.Структура модуля. Секция внешних связей. Секция реализации. Секция инициализации.
- •40.Взаимодействие модулей. Компиляция модулей.
40.Взаимодействие модулей. Компиляция модулей.
Взаимодействие модулей
Если необходимо сделать так, чтобы несколько равноправных модулей имели доступ к одним и тем же переменным, константам и т.п., то наиболее практичным способом является введение дополнительного модуля, в котором будут объявлены все глобальные переменные, константы и типы данных. Секция реализации у этого нового модуля будет пустой.
Компиляция модулей
Исходные тексты модулей хранятся в файлах с расширением .pas, а результаты их компиляции - в файлах с расширением .tpu.
Существует три варианта превращения модульной программы в исполняемый код.
Все подключаемые модули должны быть откомпилированы заранее; после этого можно компилировать головную программу, используя команду Compile | Compile главного меню или нажатие клавиш ALT+F9. Если вы случайно забыли откомпилировать какой-либо модуль (соответствующий файл с расширением .tpu отсутствует), то компилятор выдаст сообщение о недостающем файле. Если в текст какого-либо модуля были внесены изменения, но перекомпиляция не производилась (изменился файл .pas, но файл .tpu остался прежним), то в исполняемый код программы будет включена старая версия этого модуля.
Компилирование при помощи команды Compile | Make (ей эквивалентно нажатие клавиши F9 ) обновит все подключаемые к программе модули, которые либо еще не были откомпилированы, либо изменились с момента последней компиляции. Кроме того, перекомпилированы будут также модули, которые обращаются к тем модулям, чьи секции связи изменились (изменения в секциях реализации такого эффекта не вызовут).
Компиляция, активизированная при помощи команды Compile | Build, затронет все модули, вне зависимости от наличия в них изменений.