Splitting out a frame of bytes

What about bit alignment of bit fields that straddle a byte/word boundary in a struct? I though it was not guaranteed. Isn't the compiler allowed to covertly control packing to suit its own whim? Sorry to be such a nuisance.