Code:
struct x_mttype   {   struct   {
                                   unsigned int type    : 5;
                                   unsigned int locale  : 1;
                                   unsigned int obs     : 1;
                                   unsigned int offset  : 9;
                               } tilea;
                      struct   {
                                   unsigned int tchar   : 8;
                                   unsigned int palette : 5;
                                   unsigned int bright  : 1;
                                   unsigned int link    : 1;
                                   unsigned int mystery : 1;
                               } tileb;
                      char *file;
                  };

x_mttype map[19][79];
Here I have specified the use of 16 bits in two bit fields in my main struct. When you specify a int type bit field on a 32bit machine, does the bit field use 32 bits even if you only specify 16? I'm trying to conserve memory you see.