Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты МП.docx
Скачиваний:
54
Добавлен:
27.03.2015
Размер:
145.11 Кб
Скачать

Способ связывания:

Этот атрибут возник для программ с модульной структурой.

Определение соответствующего имени объекта (переменной, константе, функции) в программе состоящей из нескольких модулей. Внутри модуля способ связывания – внутренний.

Выделение памяти и связь с именем происходит на этапе трансляции. Для объектов определенных в программе с модульной структурой может быть определено внешнее связывание – это связывание определяется в тех случаях когда объект определенный в одном модуле должен быть использован в другом. Для функций по умолчанию установлено внешнее связывание по этому функция определенная в одном модуле может быть определена в другом. Для переменных внешнее связывание задается только явно. Для этого используется еще один атрибут называемый класс памяти – определяет размещение объекта в ОЗУ продолжительность его существования и его способ связывания.

Классы:

1.Автоматическая память (auto) – этот класс выделяется объектам блока, выделяется либо в стеке либо в регистре. Объекты этого класса имеют локальную продолжительность существования.

2.Статическая память (static) – этот класс приписан объектам явно и задает статическую продолжительность существования, память выделяется в сегменте данных.

3.Внешняя память (extern) – задает статическую продолжительность существования внешний способ связывания память выделяется в сегменте программы данных. Функции по умолчанию приписываются к классу extern.

Для переменных класс приписывается явно. При определении объекта ему приписывается не только тип но и класс памяти, продолжительность существования, тип связывания, область действия имени и т.д.

Явно задается только класс памяти.

Общее определение обьекта:

[класс памяти][модификатор] тип имя [инициализатор] ([] – говорит о том что то что внутри может быть опущено).

При определении объекта переменной или константы класс extern не используется. Этот класс используется при описании объектов. По определению ему задается имя, и другие атрибуты, тип, выделение памяти.

Описание – информация для транслятора об объекте.

Описание: [класс памяти][модификатор] тип имя, но без инициализатора так как это информация только для транслятора.