Originally Posted by Hunter2
I had a complier decide that when I said unsigned int for a bitfield that I meant it. And it chose that minimum size for the containing struct -- which was twice as big as I wanted. I had to use the nonstandard unsigned char to tell it to use a smaller type.
I don't think it is forced, I believe it is one of those implementor's descretion type of things. (The DWIM instruction.)