Справочник по Ada 2005
13.5.2 Атрибуты места хранения
Статическая семантика
Для компонента C составного, не массивно-объекта R, определены атрибуты места хранения:
R.C'Position
Если для составного типа применяется порядок битов по умолчанию, и если в разделе_компонента указано местоположение C, то обозначает значение, заданное для позиции раздела_компонента; в противном случае, обозначает то же значение, что и R.C'Address – R'Address. Значение этого атрибута имеет тип universal_integer.
R.C'First_Bit
Если для составного типа применяется порядок битов по умолчанию, и если в разделе_компонента указано местоположение C, то обозначает значение, заданное для первого_бита раздела_компонента; в противном случае, обозначает смещение, от начала первого из элементов хранения, занимаемых C, первого бита, занимаемого C. Это смещение измеряется в битах. Первый бит элемента хранения имеет номер ноль. Значение этого атрибута имеет тип universal_integer.
R.C'Last_Bit
Если для составного типа применяется порядок битов по умолчанию, и если в разделе_компонента указано местоположение C, то обозначает значение, заданное для последнего_бита раздела_компонента; в противном случае, обозначает смещение, от начала первого из элементов хранения, занимаемых C, последнего бита, занимаемого C. Это смещение измеряется в битах. Значение этого атрибута имеет тип universal_integer.
Рекомендации по реализации
Если компонент представлен с помощью некоторой формы указателя (например, смещения) на фактические данные компонента, и эти данные сопряжены с остальной частью объекта, то атрибуты места хранения должны отражать место фактических данных, а не указателя. Если компонент размещён несовместно с остальной частью объекта, то при ссылке на один из его атрибутов места хранения должно генерироваться предупреждение.