Information sur le C

Fermé
buanga - 10 avril 2002 à 20:52
phy Messages postés 4 Date d'inscription vendredi 5 avril 2002 Statut Membre Dernière intervention 15 avril 2002 - 11 avril 2002 à 17:36
c'est quoi une structure de bit et une structure d'union en C ansi?
S'il vous plait avec plus des details possible !!!
Merci pour votre aide

1 réponse

phy Messages postés 4 Date d'inscription vendredi 5 avril 2002 Statut Membre Dernière intervention 15 avril 2002
11 avril 2002 à 17:36
T'est pas chiant toi...
une union d'abord :
union test{
short toto;
unsigned short toto2;
long entier;
};

quand tu alloues une variable du type test, la taille allouée est celle de la plus grande variable de l'union (ici long).
quand tu mets 1 dans toto, les valeurs de toto2 et entier sont également changées (en1). Si on met -1 dans toto2, la valeur de toto et entier sont de 65535 (unsigned pour toto représentation de -1 en mémoire et pour entier, c'est un long donc seule ses deux dernier octets sont modifié (avec Windows)) Si tu met 65537 dans entier, tu auras 1 dans toto et dans toto2 (65537-65536)
En résumé,faire une union réserve la MEME zone mémoire pour toute les données.

pour les champs de bits:
définition :
struct
test {
unsigned short icon : 8;
unsigned short color : 4;
unsigned short underline : 1;
unsigned short blink : 1;
} toto;
Les champs de bits permettent de nommer des bits dans les structures sans trop s'emmerder.
icon prend 8 bit, color 4 bits, underline en prends 1 et blink en prends 1 également.
toto.blink permet d'acceder au seul bit réservé pour blink et ce directement.

Si tu veux plus d'info, pose d'autre question pcq c'est très dur de parler de ce genre de structures de but en blanc...


A+
Phy
"Beuhh encore  un bug"
0