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
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
A voir également:
- Information sur le C
- Information d'identification réseau - Guide
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum LibreOffice / OpenOffice
- Lcfc debug page information - Forum BIOS
- Impression blanche ✓ - Forum Imprimante
- Le protocole assure que la communication entre l'ordinateur d'adèle et le serveur de sa banque est car les informations seront avant d'être envoyées. - Forum Facebook
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
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"
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"