Ada 编程/属性/'描述符大小
外观
非静态属性 Descriptor_Size
返回为类型分配的描述符的大小(以位计)。只有对于无约束数组类型,结果才非零,返回的值为通用整数类型。在 GNAT 中,数组描述符包含边界信息,并且位于数组第一个元素之前。
type Unconstr_Array is array (Short_Short_Integer range <>) of Positive;
Put_Line ("Descriptor size = " & Unconstr_Array'Descriptor_Size'Img);
该属性考虑了由于组件类型对齐而产生的任何填充。在上面的示例中,描述符包含两个类型为 Short_Short_Integer
的值,表示下界和上界。但是,由于 Positive
的对齐方式为 4,因此描述符的大小为 2 * Short_Short_Integer'Size
,向上取整到 32 的下一个倍数,这将产生 32 位的大小,即包括 16 位填充。