Bonjour,
J'ai un record discriminé et j'aimerais m'assurer que l'alignement se fait bien sur 32 bits pour tous les champs :
En gros ce que j'aimerais faire si A et B ne feraient pas partie du record :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 type Bit is range 0 .. 1; for Bit'Size use 1; type Bit_Array is array (Integer range <>) of Bit; for Bit_Array'Component_Size use 1; type Rec (MSB_A, MSB_B : Integer) is record A : Bit_Array (0 .. MSB_A); B : Bit_Array (0 .. MSB_B); C : Integer; end record;
Je n'ai pas besoin de spécifier la taille des champs mais juste l'alignement. J'ai aussi pensé à rajouter la clause "for Bit_Array'Alignment use Integer'Alignment;" après la déclaration du type Bit_Array, mais j'ai vu que ça n'a eu aucun effet sur les variables Bit_Array.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for A'Alignment use Integer'Alignment; for B'Alignment use Integer'Alignment;
Merci pour vos réponses
Jonas
Partager