Классы памяти объектов в языке Cи
Напомним, что все объекты программы на Си перед их использованием должны быть декларированы. Операционные объекты (в частности переменные) при этом, кроме атрибута «тип», имеют необязательный атрибут «класс памяти», существенно влияющий на область и время их действия.
Класс памяти программного объекта определяет время ее существования (время жизни) и область видимости (действия) и может принимать одно из значений: auto, extern, static и register.
Класс памяти и область действия объектов по умолчанию зависят от места их размещения в коде программы.
Область действия объекта – это часть кода программы, в которой его можно использовать для доступа к связанному с ним участку памяти. В зависимости от области действия переменная может быть локальной (внутренней) или глобальной (внешней).
Имеется три основных участка программы, где можно декларировать переменные:
– внутри функции (блока);
– в заголовке функции при определении параметров;
– вне функции.
Эти переменные соответственно называются локальными (внутренними) переменными, формальными параметрами и глобальными (внешними) переменными.
Область действия локальных данных – от точки декларации до конца функции (блока), в которой произведена их декларация, включая все вложенные блоки.
Областью действия глобальных данных считается файл, в котором они определены, от точки описания до его окончания.
Если класс памяти у переменной не указан явным образом, он определяется компилятором исходя из контекста ее декларации.
Время жизни может быть постоянным – в течение выполнения программы, и временным – в течение выполнения функции (блока) программы.
Дата добавления: 2014-12-30; просмотров: 667;