duvida de formação de estrutura em C

Alguém poderia me explicar como funciona essas definições de união de variaveis ?
typedef struct
{
POV:4;
B4:1;
B5:1;
B6:1;
B7:1;
}byte_bits;
typedef union
{
unsigned char byte;
byte_bits bit;
}byte;
char read[64],write[64];
unsigned char temp,pov;
char x_axis,y_axis,throttle=0;
typedef struct
{
POV:4;
B4:1;
B5:1;
B6:1;
B7:1;
}byte_bits;
typedef union
{
unsigned char byte;
byte_bits bit;
}byte;
char read[64],write[64];
unsigned char temp,pov;
char x_axis,y_axis,throttle=0;