struct byteBits
{
  unsigned a: 1;
  unsigned b: 1;
  unsigned c: 2;
  unsigned d: 1;
  unsigned e: 3; 
} x;

int main(void)
{
  x.a = 1;         //x.a may contain values from 0 to 1
  x.b = 0;         //x.b may contain values from 0 to 1
  x.c = 0b10;      //x.c may contain values from 0 to 3
  x.d = 0x0;       //x.d may contain values from 0 to 1
  x.e = 7;         //x.e may contain values from 0 to 7
}