Мне не хватает чего-то базового в моих представлениях о том, как Ада и печатает.Все, что я хочу сделать, это что-то вроде этого:
procedure Example( rec_len : in interfaces.c.short ) is
shortLen : Short_integer := 0;
recLen : integer := 0;
begin -- example
shortLen := rec_len; -- and
recLen := shortLen;
Text_IO.Put_Line( "rec length = "& Integer'IMAGE( recLen ));
end example;
Другими словами, просто получить целочисленное значение из типа C
language short
.
в i-c.ads
theопределение для short
такое же -
type short is new Short_Integer;
Я не могу найти ссылку или пример, который показывает синтетический сахар, необходимый для выполнения этой простой операции.
В строке:shortLen := rec_len
, компилятор GNAT говорит «ожидаемый тип Standard.Short_Integer», что, конечно, так.Однако я не нашел подходящего вызова типа to_Short (), который бы работал. Я понимаю, что это основной вопрос, я все еще думаю, что это должно быть что-то, что я могу найти в документе где-нибудь ( легко ???). Заранее спасибо за ваше ноу-хау.