sindicatos - ¿Se puede inicializar un sindicato en la declaración?
ugt españa (3)
Por ejemplo, digamos que tenemos un sindicato.
typedef union {
unsigned long U32;
float f;
}U_U32_F;
Cuando se declara una variable de este tipo de unión, ¿hay una manera de establecer un valor inicial?
U_U32_F u = 0xffffffff; // Does not work...is there a correct syntax for this?
Intente U_U32_F u = {0xffffffff};
Tenga en cuenta que la inicialización de unión por miembro no funciona en los compiladores anteriores a C99, de los cuales hay un número deprimente por ahí. El compilador actual de Microsoft C no lo admite, por ejemplo. (Recuerdo vagamente que ni siquiera admite la inicialización de primer miembro, que se remonta a K&R II, pero podría estar equivocado al respecto).
Use una lista de inicializadores:
U_U32_F u = { 0xffffffff };
Puede configurar otros miembros que el primero a través de
U_U32_F u = { .f = 42.0 };