The software described in this documentation is either in Extended Support or Sustaining Support. See https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdf for more information.
Oracle recommends that you upgrade the software described by this documentation as soon as possible.
To be able to generate efficient code, compilers have to follow the byte alignment
restrictions defined by the target processors. This means that compilers have to add pad bytes
into user-defined structures so that the structure does not violate any restrictions imposed
by the target processor. The compiler padding is illustrated in the following example. Here,
an int
is assumed to be 4 bytes, a short
is 2 bytes, and
a char
is a single byte.
struct mydata { char C; long L; short B; long J; };
Figure 3.3 illustrates how
struct mydata
would be padded to align with 4-byte boundaries.
As the alignment of an int
on this platform is 4 bytes, 3 bytes are
added after char C
, and two bytes are added at the end of short
B
. Because of the padding, the addresses of the data in this structure are evenly
divisible by 4. This is called structure member alignment. Obviously, the size of the
structure in memory grows as a consequence.