conversion type C++ vers Delphi
Bonjour,
J'ai une conversion à faire mais je ne trouve pas comment, voici le code C++ :
Code:
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 :
Code:
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; |
Ce que je ne sais pas traduire c'est le struct avec __attribute__((packed)) :
Code:
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é