Le 3 mars 2012 11:54, Philippe Strauss <[email protected]> a écrit :
>
> par contre t'as tjr besoin d'une union avec un type standard dans le cas de
> fait du printf dessus ?
Non, c'était juste pour montrer comment les bits sont disposés en mémoire.
Voilà un exemple plus simple.
#include <stdio.h>
struct s {
unsigned char bf0:1;
unsigned char bf1:2;
unsigned char bf2:3;
};
int main(void) {
struct s s = { 1, 2, 3 };
printf("%u, %u, %u\n", s.bf0, s.bf1, s.bf2);
return 0;
}
Note qu'il y a un piège de portabilité comme C aime bien,
lorsqu'on utilise int comme type de bit-field: c'est
l'implémentation qui choisi s'il s'agit d'un signed int
ou d'un unsigned int.
Marc
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull