Bonjour à tous,
Pour représenter un type de données, j'ai l'union suivante :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 typedef union { short brut; struct { unsigned codeop : 6; unsigned mode : 4; unsigned source : 3; unsigned dest : 3; } codage; } mot;
- La structure codage qui contient 4 champs de bits.
- Cette structure est contenue dans une union mot, en concurrence avec un short
Selon le principe de l'union, j'utilise le type mot soit comme un struct codage, soit comme un short.
Jusqu'ici tout va bien.
Mon problème est le suivant : comment savoir quelle "partie" de l'union est utilisée ?
Exemple :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2mot unMot; unMot.brut = 32;
Je voudrais savoir si unMot est un short, ou un struct codage.
J'ai essayé
Bien évidemment cela ne fonctionne pas.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ( unMot.codage == NULL ) { printf("Le mot est un short"); }
Pourriez-vous éclairer ma lanterne ?
Partager