#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<malloc.h>

struct bits1
{
unsigned int f1:10;
int word;
unsigned int f2:10;
};

struct bits2
{
char c;
unsigned int f1:22;
unsigned int f2:3;
int word;
};


struct bits3
       {
         unsigned int opaque       : 1;
         unsigned int fill_color   : 3;
         unsigned int show_border  : 1;
         unsigned int border_color : 3;
         unsigned int border_style : 2;
       };
       
      

       
int main()
{
      
printf("%d %d %d\n",sizeof(struct bits1),sizeof(struct bits2),sizeof(struct bits3));

/*
struct bits3 s;
       
       s.opaque = 1;
       s.fill_color = 5;
       s.show_border = 0;
       s.border_color = 7;
       s.border_style = 3;

       int i;
       char *ptr = (char *)&s;
       for (i=0; i < sizeof(struct bits3); i++){
          printf("%x = %x\n", ptr + i, *(ptr + i));
       }
*/

return(0);
}