Sommaire

Principe de l’union

Un union est une variable unique, mais avec un choix de types. L’espace mémoire de la variable correspond à celui nécessaire pour le type le plus grand. Par exemple :

union utest{  
    char c;  
    int i;  
    float f;  
    double d;  
};

Pour disposer d’un union, il suffit d’une déclaration :

union utest u ;

Comme les structures, un typedef permet de faire disparaître l’utilisation du mot-clé, le mot union :

typedef union {  
    char c;  
    int i;  
    float f;  
    double d;  
}utest;

Afin d’obtenir des déclarations sous la forme :

utest u ;

En C++ le typedef est implicite et la définition :

union utest{  
    char c;  
    int i;  
    float f;  
    double d;  
    float f;  
    double d;  
};

permet des déclarations sans le mot-clé union :

utest u ;

Cet union utest définit le type d’une variable qui peut être soit un char, soit une int, soit un float, soit un double. Le choix du type pour la variable s’effectue en utilisant l’opérateur point comme pour une structure. Par exemple :

L’expression u.c = ’A’;

détermine que l’union est un char,

avec u.i = 350;

l’union est un int,

avec u.i = 0.5f;

l’union ...