Bonjour,
Voici un bout de code qui compile avec gcc de version antérieure à 2.5
(oui ca date)
Ca ressemble à du C, mais c'est bel et bien compilé en C++.
on peut l'éclaircir un peu pour la compréhension:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 unsigned int i; i = ((union toto_n {double d; unsigned int t[2];}){d:12.34}).t[1];
qui correspond au code, un peu plus à la norme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 unsigned int i; typedef union toto_n { double d; unsigned int t[2]; } toto_u; i = ((toto_u){d:12.34}).t[1];
Enfin la on a une initialisation explicite de x, ce qui n'est pas le cas précédemment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 unsigned int i; typedef union toto_n { double d; unsigned int t[2]; } toto_u; toto_u x; x.d = 12.34; i = x.t[1];
Quelqu'un a-t-il déjà rencontré cette syntaxe d'initialisation d'un type union ?
Je n'arrive pas à trouver mention nulle part de ce type de syntaxe...
Toute information est la bienvenue !
Partager