Taz bisounours-codeur | oui, c'est possible.
NB : en C++, et uniquement en C++, une union peut être anonyme
ça fonctionne comme unestructure, donc le passage par pointeur fonctionne, etc. petit exemple
Code :
- struct Bar
- {
- union Baz
- {
- char c[sizeof(int)];
- int i;
- } u;
- double dummy;
- };
- static void doSomething(struct Bar *r, union Baz z)
- {
- r->u = z;
- }
- #include <stdio.h>
- int main()
- {
- struct Bar r;
- union Baz z;
- r.dummy = 3.1415;
- z.i = -33;
- printf("dummy = %f\n"
- "i = %d\n",
- r.dummy,
- r.u.i);
- doSomething(&r, z);
- printf("dummy = %f\n"
- "i = %d\n",
- r.dummy,
- r.u.i);
- return 0;
- }
|
|