I have been told that the standard allows: struct foo { long xx : 128; }; This is a field that takes up 128 bits of space, but only really uses sizeof(long) * 8 bits. We have to agree on where the padding goes. I couldn't find it in the data layout spec. Our compiler puts it after the 'real' bits. Mark