Union

Ensias Messages postés 31 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 15 décembre 2006 - 30 déc. 2005 à 16:57
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 - 31 déc. 2005 à 11:19
Bonjour je voudrais savoir , si il existe un équivalent aux unions en c++
Merci

6 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
30 déc. 2005 à 17:08
Euh... les unions ça n'existe pas en C++ ? Je pensais, mais tu sème un doute dans mon esprit...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
30 déc. 2005 à 17:09
Si si, ca existe bien. Donc l'équivalent des unions en C++ ce sont les unions
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
30 déc. 2005 à 17:17
Ok je me disais bien ^^ Mais ça sert à quoi de faire une union à la place d'une structure ou d'une classe ? Ca change quoi en fait ?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
30 déc. 2005 à 17:19
Ca permet juste d'interpréter un même donnée de différentes manière je crois (j'ai jamais utilisé ca en fait). A mon avis ca évite juste de devoir faire des cast tout le temps. Ca n'a pas la même fonction qu'une classe ou une structure
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
31 déc. 2005 à 09:45
D'après ce que je sais, les unions permettent d'affecter un seul espace mémoire à plusieurs variables...

Par exemple :



union

{

int v1;

float v2;

};



La taille de cette union sera bien 4 octets (sur une
machine 32 bits :p). En revanche, tu ne peux accéder en même temps à
plusieurs variables d'une union Puisqu'elles partagent le même espace
mémoire, lorsque tu en modifies une, tu modifies l'autre...Ca permet
d'économiser l'espace mémoire, mais faut faire hyper gaffe. Si tu fais
par exemple v1=17, la valeur de v2 sera également modifiée...

Donc, ce n'est utile que pour regrouper des groupes de variables, dont tu n'en utilises qu'une a la fois...

@+
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
31 déc. 2005 à 11:19
C'est exactement ca Platon179, mais généralement un fait une union entre une variable entière et un champs de bit de même taille. Comme ca ont peut accèder à la valeur complète ou un bit en particulier sans cast, masque et autre artifice de syntaxe tels q'un pointeur.

Leur utilitée reste extrèmement rare puisque on à tous les artifices cité plus haut pour s'en passer. Car faire un union ca pas terrible pour la lisibilitée du code, si tu lit var1 et que tu zap que c'est le même emplacement memoire que var2 tu passera certainement à coter d'un point important du code.

Le travail c'est la santé, ne rien faire c'est la préservé !!!
0
Rejoignez-nous