![]()
Utilisation pratique des unions ![]()
![]()
![]()
![]()
![]()
Suivant: Une méthode pour alléger Début: Structures, unions et énumérations Précédent: Accès aux membres de
Utilisation pratique des unions
Lorsqu'il manipule des variables de type union, le programmeur n'a malheureusement aucun moyen de savoir à un instant donné, quel est le membre de l'union qui possède une valeur. Pour être utilisable, une union doit donc toujours être associée à une variable dont le but sera d'indiquer le membre de l'union qui est valide. En pratique, une union et son indicateur sont généralement englobés à l'intérieur d'une structure. Dans l'exemple précédent, on procédera de la manière suivante :
enum type {ENTIER, FLOTTANT}; struct arith { enum type typ_val; /* indique ce qui est dans u */ union { int i; float f; } u; };la struct arith a deux membrestyp_val
de type int, et u de type union d'int et de float. On déclarera des variables par :struct arith a1,a2;puis on pourra les utiliser de la manière suivante :a1.typ_val = ENTIER; a1.u.i = 10; a2.typ_val = FLOTTANT; a2.u.f = 3.14159;Si on passe en paramètre à une procédure un pointeur vers une struct arith, la procédure testera la valeur du membretyp_val
pour savoir si l'union reçue possède un entier ou un flottant.
30/9/1997