9.10.11 packed

The packed attribute specifies that a structure member should have the smallest possible alignment unless you specify a larger value with the aligned attribute.

Here is a structure in which the member x is packed, so that it immediately follows a, with no padding for alignment:

struct foo
{
  char a;
  int x[2] __attribute__ ((packed));
};
Note: The device architecture requires that words be aligned on even byte boundaries, so care must be taken when using the packed attribute to avoid run-time addressing errors.