Урок 11.1. Понятие класса памяти
11.1. Понятие класса памяти
Мы уже знакомы с понятием локальной и глобальной перемнной. Локальные переменные известны только функциям, в теле которых они описаны. Причем, если в одной программе используются две разные функции, в теле которых описана переменная с одним и тем же именем, то они воспринимаются компилятором как две разные локальные переменные и в разных функциях они имеют различные значения. При выходе из функции, значение локальной переменной становится недоступным. О глобальных переменных "знают" несколько функций, если они описаны вне любого определения функций. Значение глобальной переменной сохраняется при переходе от функции к функции. Каждая переменная в программе имеет тип. Кроме того, каждая переменная принадлежит к некоторому классу памяти. Класс памяти позволяет установить два факта. Во-первых, определить, какие функции имеют доступ к переменной. ( Пределы доступности переменной характеризуют ее область действия ). Во-вторых, определить, как долго переменная находится в памяти. В языке Си имеется четыре класса памяти: автоматический, статический, внешний и регистровый. Определение класса памяти переменной зависит от того, где переменная описана и какое ключевое слово используется. Ниже приводится таблица свойств классов памяти.
Класс памяти | Ключевое слово | Продолжительность существования |
Область действия |
Автоматический | auto | Временно | Локальная |
Регистровый | register | Временно | Локальная |
Статический | static | Постоянно | Локальная |
Внешний | extern | Постоянно | Глобальная (все файлы) |
Внешний статический | static | Постоянно | Глобальная (один файл) |
Оставить комментарий