Bonjour,
J'ai une conversion à faire mais je ne trouve pas comment, voici le code C++ :
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 typedef union __address { uint16_t value; struct { uint8_t high; uint8_t low; } bytes; struct __attribute__((packed)) { uint8_t line:3; uint8_t area:5; uint8_t member; } ga; struct __attribute__((packed)) { uint8_t line:4; uint8_t area:4; uint8_t member; } pa; uint8_t array[2]; } address_t;
Pour l'union je sais faire, il suffit d'utiliser le case :
Ce que je ne sais pas traduire c'est le struct avec __attribute__((packed)) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 type Tbytes = record high : Byte; low : Byte; end; etc address_t = record ... case Integer of 0: bytes : TBytes; 1: ga : ..; 2: pa : ...I; end; ... end;
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct __attribute__((packed)) { uint8_t line:3; uint8_t area:5; uint8_t member; } ga;
que signifie les éléments de cette structure ? uint8_t line:3;
que veut dire le ':3' et comment traduire __attribute__((packed)) en Delphi ?
D'après mes recherches __attribute__((packed)) est utilisé pour minimiser l'espace mémoire utilisé
Partager