跳转到内容

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 位填充。

华夏公益教科书