Tema: ¿ union ?
Ver Mensaje Individual
  #4  
Antiguo 01-03-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Reputación: 18
Guillermo80 Va por buen camino
union

Gracias a los dos por vuestras explicaciones. Sin duda es la definición perfecta para lo que significan esas dos variables definidas en el registro union. Lo único que veo "feo" es definir dentro del struct el union, en vez de definirlo aparte y luego simplemente invocar al union asignándole un nombre.

Cita:
union {
FLAC__uint32 frame_number;
FLAC__uint64 sample_number;
}
number;



typedef struct {
unsigned blocksize;
unsigned sample_rate;
unsigned channels;
FLAC__ChannelAssignment channel_assignment;
unsigned bits_per_sample;
FLAC__FrameNumberType number_type;
number miNumber;
FLAC__uint8 crc;
}
FLAC__FrameHeader;
¿Qué os parece así?
Lo digo porque tal y como está definido, para acceder a frame_number de la primera forma tendría que "presuponer" que el nombre con el que se invoca a union es "number", o sea:

Cita:
miFLAC__FrameHeader.number.frame_number


Mientras que de la forma que propongo veo más claro acceder así:

Cita:
miFLAC__FrameHeader.miNumber.frame_number
Espero no haberos hecho un lío con los nombres . Por cierto, gracias de nuevo, da sentido totalmente a lo que teóricamente significan esas variables, ya que necesito que cuando una cambie de valor, automáticamente la otra también lo haga. La faena va a ser encontrar su "análogo" en Delphi, ¿tenéis algún as más en la manga?
Responder Con Cita