我在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
現在感謝您的支持。 –