Next: Accès aux membres de
Up: Structures, unions et énumérations
Previous: Les énumérations
Les unions
Il est parfois nécessaire de manipuler des variables auxquelles on désire
affecter des valeurs de type différents.
Supposons que l'on désire écrire un
package mathématique qui manipulera des nombres qui seront implémentés
par des int, tant que la précision des entiers de la machine sera
suffisante et qui passera automatiquement à une représentation sous
forme de flottants dès que ce ne sera plus le cas.
Il sera nécessaire de disposer de variables pouvant prendre
soit des valeurs entières, soit des valeurs flottantes.
Ceci peut se réaliser en C, grâce au mécanisme des unions.
Une définition d'union a la même syntaxe qu'une définition de structure,
le mot clé struct étant simplement remplacé par le mot clé
union. Exemple :
union nombre
{
int i;
float f;
}
L'identificateur
nombre est appelé
étiquette d'union.
La différence sémantique entre les
struct et les
unions
est la suivante :
alors que pour une variable de type structure tous les membres peuvent avoir en
même temps une valeur, une variable de type union ne peut avoir à un instant
donné qu'un seul membre ayant une valeur.
En reprenant l'exemple précédent, on déclarera une variable
n
de type
union nombre par :
union nombre n;
cette variable pourra posséder soit une valeur entière, soit une valeur
flottante, mais pas les deux à la fois.
Next: Accès aux membres de
Up: Structures, unions et énumérations
Previous: Les énumérations
Bernard Cassagne
1998-12-09