OVER (разделяет место в памяти)
OVER(переменная)
переменная Метка переменной,
которая уже занимает память,
подлежащую разделу.
Атрибут OVER позволяет
ссылаться на один и тот же
участок памяти двумя разными
путями. Поле, описанное с
атрибутом OVER, должно быть НЕ
больше, чем переменная, поверх
которой она накладывается (хотя,
конечно, она может быть меньше).
(SPA. Для тех кому это трудно
понять сразу, как мне было в
свое время, скажу что этот
механизм аналогичен
паскалевским записям с
вариантами)
Поле в структуре GROUP НЕ может
быть описано поверх
переменной, которая находится
ВНЕ этой структуры GROUP. Также,
нельзя описать поле поверх
переменной, которая является
частью списка параметров
процедуры или функции.
Пример:
CustNote FILE,PRE(Csn) !Declare CustNote file
Notes MEMO(2000) !The memo field
Record RECORD
CustID LONG
. .
CsnMemoRow STRING(IO),DIM(200),OVER(Csn:Notes) !Csn:Notes
!можно рассматривать как одно
!целое или блоками по 10 байт
См. также: