我在Ada类型记录中遇到了一些麻烦。 我正在使用Sequential_IO读取二进制文件。要做到这一点,我必须使用大小为文件大小倍数的类型。在我的情况下,我需要的50个字节的结构,所以我创建的类型是这样的(“Vecteur”为3浮法的阵列):Ada:记录类型的变体大小
type Double_Byte is mod 2 ** 16; for Double_Byte'Size use 16;
type Triangle is
record
Normal : Vecteur(1..3);
P1 : Vecteur(1..3);
P2 : Vecteur(1..3);
P3 : Vecteur(1..3);
Byte_count1 : Double_Byte;
end record;
当我使用类型三角形的尺寸是52个字节,但是,当我把它中的每一个的大小分开,我发现50个字节。因为52不是我文件大小的倍数,所以我有执行错误。但我不知道如何解决这个问题,我运行了一些测试,我认为它来自Double_Byte,因为当我从记录中删除它时,我发现它的大小为48个字节,而当我将它放回时,它又是52个字节。
谢谢你的帮助。
谢谢你的回答。我只是试图把你说的大小,但我仍然有同样的问题,最后的大小是52字节... –
啊,是的,我忘了一些东西,看我的编辑。 – flyx
现在感谢您的支持。 –