But remember that your struct is actually using an unsigned int to save the first 2 bits,
therefore you're using up memory for no reason ( 30 bit remain unused )