В Турбо Ассемблере и большинстве других языков программирования идентификатор в зависимости от того, где он находится в модуле, может иметь разное значение. Например, некоторые идентификаторы могут иметь одно и то же значение во всем модуле, а другие определены только для конкретной процедуры.
Под областью действия понимается диапазон строк, в котором идентификатор имеет определенное значение. Для разработки программ, использующих принципы модульного программирования, правильное задание области действия идентификатора имеет важное значение. Управляя областью действия идентификатора, вы можете управлять его использованием. Кроме того, правильный выбор области действия идентификатора может устранить проблемы, возникающие при многократном определении идентификатора с одним и тем же именем.
Переопределяемые идентификаторы
Некоторые типы идентификаторов, которые поддерживает Турбо Ассемблер, рассматриваются как переопределяемые. Это означает, что вы можете в любом месте модуля переопределить идентификатор данного типа другим идентификатором данного типа. Этим свойством, например, обладают числовые идентификаторы:
foo = 1 mov ax,foo ; поместить 1 в AX foo = 2 mov ax,foo ; поместить в AX 2
В общем случае область действия данного переопределяемого идентификатора начинается в точке его определения и продолжается до того места, в котором он переопределяется. Область действия последнего переопределения идентификатора включает в себя область от начало модуля до первого определения идентификатора. Например:
mov ax,foo ; поместить 2 в AX! foo = 1 mov ax,foo ; поместить 1 в AX foo = 2 ; это определение расширяется на ; начало модуля. mov ax,foo ; поместить 2 в AX
Типы переопределяемых идентификаторов перечислены в следующем списке:
Примечание: Об этом подробнее рассказывается в этой главе.
Область действия в границах блока
Ограничение области действия границами блока позволяет идентификатору иметь область действия, соответствующую процедуре или функции. Турбо Ассемблер поддерживает два типа области действия в границах блока: в стиле MASM и в стиле самого Турбо Ассемблера.
1 2
8 8 8
|