Информатика и технология программирования


Файл Си-программы как элемент модульного программирования


Под модульным программированием понимается процесс разработки программы из нескольких логически завершенных единиц -модулей. В Си такой логической единицей программирования является функция. Но кроме этого еще одной, но уже физической единицей программы является текстовый файл, содержащий некоторое количество функций и определений типов данных и переменных. Модульное программирование на уровне файлов -это возможность разделить полный текст программы на несколько файлов, транслировать их независимо друг от друга. Частным случаем модульного программирования является использование библиотечных функций, поскольку библиотеки представляют собой аналогичные Си-программы, независимо оттранслированные и помещенные в каталог библиотек.

Нас прежде всего будет интересовать, какими свойствами обладают переменные и функции, определенные в различных точках модуля-файла, как они "узнают" о существовании друг друга и как они взаимодействуют между собой. Для начала сформулируем ряд необходимых терминов.

ОПРЕДЕЛЕНИЕ ПЕРЕМЕННОЙ ИЛИ ФУНКЦИИ - - процесс создания программного эквивалента переменной или функции транслятором по их описанию в программе (трансляция во внутреннее представление)

Определение функции включает в себя заголовок функции и тело, определение переменной -обычное контекстное определение и, возможно, ее инициализацию.


int a = 5 , B[10]={ 1,6,3,6,4,6,47,55,44,77 };

В определении переменной:



-задан тип переменной;



-задано имя переменной;



-определяется размерность и резервируется память. Размерность массивов в определении обязательно должна быть задана;



-производится инициализация памяти;



-для доступа к переменной из других модулей в текущем модуле может быть создана точка входа.


int strcmp(char *s, char *d) { ... }

В определении функции:



-задан тип результата;



-задано имя функции;



-задан список формальных параметров и их типов;



-транслируется тело функции;



-для вызова функции из других модулей в текущем модуле может быть создана точка входа.

Например, определение размещается далее по тексту в текущем модуле или находится в другом модуле.


- Начало -  - Назад -  - Вперед -