Шаг 12 - Программа и связи в программе

Программа состоит из одного или более модулей или, можно так сказать, объектов компиляции, которые в последствии собираются в общий модуль EXE. Каждый отдельный объект компиляции обычно CPP файл, который в результате обработки превращается в OBJ файл. Общая схема такова.

CPP _____OBJ_
CPP _____OBJ |-EXE
CPP _____OBJ-

Выполнение начинается с модуля, который имеет функцию main. Каждый модуль имеет свои объявления и определения. Данный раздел посвящен как видны эти элементы между разными объектами компиляции.

Имена объектов и функций имеют понятие связи. То есть определяя функцию или допустим переменную Вы даже того не подозревая устанавливаете связь. То есть связь это просто свойство имени или функции. Это свойство есть всегда не в зависимости от того осознаете вы его наличие или нет. Но лучше осозновать. Итак связей может быть три типа.

Внутренняя
Внешняя
Никакая

Внутреняя связь говорит о доступности этого объекта внутри объекта компиляции и только. То есть он доступен внутри файла CPP, в другом файле объект не виден. Имена с такой связью иногда называют локальными. Объявляются они так:

 static int i;

Внешняя связь. При такой связи объект будет доступен в любом файле CPP. То есть он внешний по отношению к отдельным модулям и находится выше их. Объявить объекты с такой связью можно так:

extern int i;

Имена могут быть и без связи, например, объвленные через typedef.

Следующие правила связи относятся к именам (кроме typedef и имен списка). Если имя явно объявлено как static, у него есть внутренняя связь и идентифицирует программный элемент в своем собственном модуле. Списки и typedef имена не имеют связей. Все другие имена имеют внешнюю связь.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 20.04.2000