Salut,
Un byte= taille d'un char, *généralement*= un octet (8 bits)
Il veut dire que dans la structure
Code:
1 2 3 4 5 6 7 8 9
|
struct mastruct
{
int entier;
char bf1 : 4;
char bf2 : 4;
char bf3 : 2;
char bf4 : 6;
}; |
rien ne dit que l'on trouvera, dans l'ordre, bf1,bf2,bf3 et bf4 en mémoire (donc en général).
Par contre, ce qui sera sur, c'est que nous trouverons bien les 4 bits de bf1 l'un à coté de l'autre (et pour cause: c'est un champs de bits :D)
Au final, selon l'endianness (le "boutisme"),avec le code
tu peux tout aussi bien pointer sur un bit d'un des autres champs de bits, un bit de entier ou un des bits "inutilisé" à cause de l'alignement... Bref, n'importe où ;)