Je vais donner un exemple :
Code:
1 2 3 4 5 6
|
typedef struct {
int a;
int b
short c;
} toto_t |
Le compilateur traite les structures par packet de 4 octets ce qui fait que sans l'option Zp2, si je fais sizeof(toto_t) on me répond 12 alors que moi je veux que ce sois 10.
Dans gcc, la seule solution pour que j'ai trouvé est de rajouter __attribute((packed))__ à la fin de la définition de la structure :
Code:
1 2 3 4 5 6
|
typedef struct {
int a;
int b
short c;
} __attribute((packed))__ toto_t |
Si il existe un autre opérateur que sizeof qui donne la taille d'une structure ça m'intéresse. Parce que maitenant que j'y refléchit je trouve ça bête de désoptimiser ma compilation juste pour avoir une valuer juste.