Любой объект, который объявляется в программе на языке PL/M-51, имеет область действия. Область действия существует для:
- переменных
- подпрограмм
- меток
Область действия объекта представляет собой часть программы, в которой объявляется идентификатор объекта за вычетом текста, содержащегося в любом вложенном в него блоке, в котором объявляется тот же самый идентификатор. К объектам запрещено обращение до того, как они будут объявлены. Это ограничение не касается меток.
Такое определение области действия позволяет не следить при написании программы за использованием идентификаторов, которые уже были использованы в программе в других модулях.
Некоторые блоки могут содержать вложенные блоки, как показано в следующих примерах. Использование внутренних блоков позволяет объявлять локальные переменные. Это позволяет использовать одни и те же ячейки памяти для различных переменных и тем самым экономить ресурсы памяти данных.
Пример 1:
Пример 2:
Переменные существуют только в пределах блока. Если внутри блока были присвоены локальным переменным какие-то значения, то не следует ожидать, что вернувшись снова в этот блок переменные сохранят эти значения. При использовании локальных переменных им назначаются одни и те же ячейки памяти.
Это правило не распространяется на вызов подпрограмм. При вызове подпрограммы переменная, объявленная в блоке становится недоступной, но при возвращении в этот блок она сохраняет свое значение.