Ада-95. Компилятор GNAT



              

Атрибуты типов определенные в реализации компилятора GNAT - часть 2


Если операнды вывода отсутствуют, то аргумент может быть опущен или явно указан как No_Output_Operands.

   

'AST_Entry

 - 

Этот атрибут реализован только для работы с OpenVMS версией GNAT.

   

obj'Bit

 - 

где obj: любой объект.

Возвращает битовое смещение в элементе памяти (как правило байте) в котором находится первый бит пространства размещенного для объекта obj.

Возвращаемое этим атрибутом значение имеет тип Universal_Integer, величина которого всегда не отрицательна и не достигает величины System.Storage_Unit.

Для объектов, которые являются переменными или константами размещаемыми в регистре возвращаемое значение - нуль (использование этого атрибута не обязывает размещать переменные в памяти).

Для объектов, которые являются формальными параметрами, этот атрибут применяется как для совпадающего фактического параметра, так и для копии совпадающего фактического параметра.

Для ссылочных объектов, возвращаемое значение - нуль. Примечательно, что obj.all'Bit является объектом проверки Access_Check для обозначенного объекта.

Подобным образом, этот атрибут для компонента записи X.C'Bit

является объектом проверки дискриминанта, а в случае массива X(I)'Bit или X(I1..I2)'Bit - объектом проверки индекса.

Этот атрибут был разработан для совместимости с описанием и реализацией атрибута 'Bit в DEC Ada 83.

   

'Bit_Position

 - 

R.C'Bit

где R - это запись, а C - это одно из полей типа записи, возвращает битовое смещение внутри записи, которое содержит первый бит пространства размещенного для объекта.

Возвращаемое этим атрибутом значение имеет тип Universal_Integer.

Величина значения зависит только от указанного поля типа записи C

и не зависит от выравнивания.

   

'Code_Address

 - 

Атрибут 'Address может быть применен для подпрограмм Ады, но предполагаемый эффект, согласно руководства по языку (RM-95), должен предусматривать адресное значение, которое может быть использовано для вызова подпрограммы подразумевая использование адресного выражения как в данном примере:




Содержание  Назад  Вперед