Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

manipulation de bit dans un union

2 réponses
Avatar
Fab
question sur la manipulation de bits, je galère:

typedef union sub_ident_u
{
struct
{
byte no_response_f : 1;
byte sub_id_7f : 7;
} bits;
byte reg_b;
} sub_ident_t;

d'après le code précédent, que signifie:
sub_indent_ t toto
toto.bits.sub_id_7f

je pense que cette 2e ligne indique l'acces au 7 premiers bits de la
variable toto (qui est un octet) qqun peut il confirmer?

2 réponses

Avatar
Eric Lévénez
Le 1/07/04 13:24, dans <40e3e65c$0$25138$, « Fab »
<fuckyduck.free.fr> a écrit :

question sur la manipulation de bits, je galère:

typedef union sub_ident_u
{
struct
{
byte no_response_f : 1;
byte sub_id_7f : 7;
} bits;
byte reg_b;
} sub_ident_t;

d'après le code précédent, que signifie:
sub_indent_ t toto
toto.bits.sub_id_7f

je pense que cette 2e ligne indique l'acces au 7 premiers bits de la
variable toto (qui est un octet) qqun peut il confirmer?


Ça dépend.

L'ordre d'affectation des bits dépend du compilateur et de l'architecture,
donc dans le meilleur des cas, c'est les 7 premiers bits, ou les 7 derniers,
ou les 7 du milieu du type "byte" qui peut être 8, 9, 42 bits...

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', "Fab" <fuckyduck.free.fr> wrote:

typedef union sub_ident_u
{
struct
{
byte no_response_f : 1;
byte sub_id_7f : 7;
} bits;
byte reg_b;
} sub_ident_t;

d'après le code précédent, que signifie:
sub_indent_ t toto
toto.bits.sub_id_7f

je pense que cette 2e ligne indique l'acces au 7 premiers bits de la
variable toto (qui est un octet) qqun peut il confirmer?


Ce n'est pas garanti par le langage. Cette méthode est à proscrire au profit
des opérateurs logiques. Ceci peut aider :

http://mapage.noos.fr/emdel/clib.htm
Module BITS

--
-ed- get my email here: http://marreduspam.com/ad672570
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?libÉ9
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/