aligned bit string with arbitrary
Смысл возвращаемых кодов следующий:
1 | - | по значению (by copy / value) |
2 | - | по ссылке (by reference) |
3 | - | по дескриптору (by descriptor / default descriptor class) |
4 | - | по дескриптору (by descriptor / UBS: unaligned bit string) |
5 | - | по дескриптору (by descriptor / UBSB: aligned bit string with arbitrary bounds) |
6 | - | по дескриптору (by descriptor / UBA: unaligned bit array) |
7 | - | по дескриптору (by descriptor / S: string, also scalar access type parameter) |
8 | - | по дескриптору (by descriptor / SB: string with arbitrary bounds) |
9 | - | по дескриптору (by descriptor / A: contiguous array) |
10 | - | по дескриптору (by descriptor / NCA: non-contiguous array) |
обозначает воображаемый объект типа T который размещается по нулевому машинному адресу. Этот атрибут допустим только для выражений в формальных параметрах по умолчанию или как фактическое выражение вызова подпрограммы. В обоих случаях подпрограмма должна быть импортированной.
Идентичность объекта представляется нулевым адресом в списке аргументов, вне зависимости от механизма передачи (явного или используемого по умолчанию).
Такая возможность необходима для спецификации того, что нулевой адрес должен быть передан для записи или другого составного объекта передаваемого по ссылке. Другого способа такой индикации, без использования атрибута 'Null_Parameter, не существует.
Например, Natural'Object_Size
равен 31 бит, а размер объекта типа Natural по умолчанию будет иметь размер 32 бита. Подобным образом, запись которая содержит Integer и Character:
type Rec is record
I : Integer; C : Character; end record;
будет иметь размер 40 бит (Rec'Size будет 40 бит; выравнивание будет 4, из-за поля типа Integer; таким образом размер записи этого типа по умолчанию будет 64 бита или 8 байт).
Атрибут T'Object_Size был добавлен к реализации GNAT, чтобы обеспечить легкое определение размера объекта типа T по умолчанию.
Например Natural'Object_Size равен 32 бита, а Rec'Object_Size (для записи из примера) будет 64.
Примечательно также то, что в отличие от ситуации с атрибутом 'Size
который описан в руководстве по языку, атрибут 'Object_Size может быть определен индивидуально для различных подтипов. Например:
type R is new Integer; subtype R1 is R range 1 .. 10; subtype R2 is R range 1 .. 10; for R2'Object_Size use 8;
В этом примере R'Object_Size и R1'Object_Size, оба равны 32, поскольку размер объекта по умолчанию для подтипа такой же как и размер для подтипа-предка.
Это подразумевает, что размер по умолчанию для объектов с типами R и R1
будет 32 бита (4 байта).
Но объекты типа R2 будут иметь только 8 бит (1 байт), поскольку R2'Object_Size был установлен в 8.
Возвращает значение типа Boolean которое равно True если тип T
может быть нормально передан по ссылке и False если тип T
может быть нормально передан по значению при вызове. Для скалярных типов результат всегда будет False и является статическим. Для не скалярных типов, результат - не статический.
Возвращает число значений представляемых типом (нуль, в случае пустого диапазона значений). Результат статический для статических типов. Этот атрибут применяется для типов индекса одномерных массивов и дает те же результаты, что и атрибут 'Range
для того же массива.
Предоставляет значение System.Storage_Unit
и первоначально предназначен для построения этого описания в пакете System.
Предоставляет значение System.Tick
и первоначально предназначен для построения этого описания в пакете System.
Обозначает функцию которая идентична System.Storage_Elements.To_Address
с тем исключением, что это статический атрибут.
Это подразумевает, что подобное выражение может быть использовано в контексте (например, при преэлаборации пакета) который требует использования статических выражений и где не может быть использован вызов функции (поскольку вызов функции всегда является не статическим, даже при статических аргументах).
Возвращает значение класса типа для типа T.
Если тип T является настраиваемым типом, то возвращаемое значение будет значением соответствующего фактического типа.
Значение этого атрибута имеет тип System.Aux_DEC.Type_Class, который имеет следующее описание:
type Type_Class is
(Type_Class_Enumeration, Type_Class_Integer, Type_Class_Fixed_Point, Type_Class_Floating_Point, Type_Class_Array, Type_Class_Record, Type_Class_Access, Type_Class_Task, Type_Class_Address);
Защищенные типы возвращают значение Type_Class_Task, которое, таким образом, подходит для всех многозадачных типов. Этот атрибут был разработан для обеспечения совместимости с одноименным атрибутом компилятора DEC Ada 83.
Возвращает адрес таблицы исключений модуля при использовании обработки исключений без потерь производительности.
Этот атрибут предназначен для использования только с реализацией GNAT.
См. модуль Ada.Exceptions в файлах "a-except.ads" и "a-except.adb" для получения более полной информации о том как эти атрибуты используются в реализации.
Возвращает статический результат, которым является строка символов представляющая число так, как оно было описано в оригинальном исходном тексте.
Это позволяет пользователю программы получить доступ к фактическому тексту описания именованных чисел без промежуточного преобразования и без необходимости заключения строк в кавычки (которые препятствуют использование строк как чисел).
Это имеет внутреннее использование для построения значений вещественных атрибутов с плавающей точкой из файла "ttypef.ads", но может быть также использовано в программах пользователя.
Ответственность за правильность использования полностью возлагается на пользователя.
Это подобно атрибуту 'Addess, для которого необходима замена в тех случаях, когда требуемое значение должно иметь ссылочный тип.
Другими словами, эффект действия этого атрибута идентичен первоначальному получению атрибута 'Addess
с последующим непроверяемым преобразованием в требуемое значение ссылочного типа.
В GNAT, но не обязательно в других реализациях, использование статической цепочки для подпрограмм внутреннего уровня подразумевает, что 'Unrestricted_Access, примененный для подпрограммы, возвращает значение, которое может быть вызвано пока подпрограмма находится в области действия (видимости).
Нормальные правила доступа/видимости в Ada 95 ограничивают такое использование.
Возвращает число бит, которое требуется для представления значений указанного типа T.
Это то же самое, что и T'Size, но в отличие от 'Size, может быть установлено для не первого подтипа.
Предоставляет битовый размер типа wchar_t языка C
и первоначально предназначен для построения этого типа в пакете Interfaces.C.
Примечание: отсутствует в реализации GNAT V 3.13p.
Предоставляет значение System.Word_Size
и первоначально предназначен для построения этого описания в пакете System.
Copyright (C) А.Гавва | V-0.4w май 2004 |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий