L ожидается как результат вызова
procedure K is ...
procedure L; for L'Address use K'Address; pragma Import (Ada, L);
После чего вызов L ожидается как результат вызова K. В Ada 83, где не предусматривалось ссылочных типов для подпрограмм, это был широко используемый прием для получения эффекта косвенного вызова.
GNAT реализует показанное в примере выше использование атрибута 'Address, и подобные приемы работают правильно.
Однако, в некоторых случаях, полезно иметь возможность получить значение адреса начала сгенерированного для подпрограммы кода. На некоторых архитектурах в этом нет необходимости, также как и в использовании приема показанного в примере выше. Например, значение 'Address может быть ссылкой на дескриптор подпрограммы, а не на саму подпрограмму.
Атрибут 'Code_Address, который может быть использован только для подпрограмм, всегда возвращает адрес начала сгенерированного для указанной подпрограммы кода, который может соответствовать или не соответствовать значению которое возвращает атрибут 'Address.
| | |
Standard'Default_Bit_Order |
- |
где Standard - единственно возможный префикс.
Предусматривает значение System.Default_Bit_Order
как значение 'Pos
(0 для High_Order_First, и 1 для Low_Order_First).
Это используется для построения описания Default_Bit_Order
в пакете System. |
| | |
U'Elaborated |
- |
где U: имя модуля.
Возвращаемое значение имеет тип Boolean и индицирует была ли выполнена элаборация указанного модуля.
Этот атрибут первоначально был предназначен для внутреннего использования генерируемым кодом для проверки динамической элаборации, но он также может быть использован в программах пользователя.
Возвращаемое значение всегда будет True, как только выполнена элаборация всех модулей. |
| | |
P'Elab_Body |
- |
|
где P: имя программного модуля.
Возвращает объекты для соответствующей процедуры элаборации для выполнения элаборации тела указанного модуля.
Атрибут используется в главной процедуре элаборации редактора связей (binder) и, обычно, не должен использоваться в любом другом контексте.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий