[gull] déserialiser une valeur double (ieee 754) avec be64toh
Marc Mongenet
marc at mongenet.ch
Sat Mar 3 18:06:16 CET 2012
Le 3 mars 2012 11:54, Philippe Strauss <philippe at strauss-acoustics.ch> 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
More information about the gull
mailing list