for really specific structure alignments you can fiddle with padding bytes
So add a few dummy bytes between the various fields, until the alignment fits with your needs.
example:
struct example
{
unsigned short x;
byte dummy1;
byte dummy2;
byte dummy3;
byte dummy4;
byte dummy5;
byte dummy6;
unsigned int y;
};
if the dummy bytes wouldn't have been placed, the int would probably have been places on offset 4 (4 bytes from the beginning of the struct, while now it has been placed at offset 8)
waring: very compiler specific, and bad code practice ;^)