i960 Processor Compiler User's Guide
7-4
7
The alignment of a scalar data type is equal to its size. Although the
extended-precision floating-point representation of
long double requires
only 10 bytes (80 bits), the natural architectural alignment of
long double
is 16 bytes. Therefore, to accommodate the semantic requirements of the
C
sizeof operator, the size of a long double is 16 bytes.
The following scalar alignments apply to individual scalars and to scalars
that are elements of an array or members of a structure or union:
char is aligned on a 1-byte boundary.
short is aligned on a 2-byte boundary.
int is aligned on a 4-byte boundary.
pointer is aligned on a 4-byte boundary.
float is aligned on a 4-byte boundary.
double is aligned on an 8-byte boundary.
long double is aligned on a 16-byte boundary.
Aggregates
An aggregate data type consists of one or more scalar data type objects.
You can declare the following aggregate data types:
array consists of one or more elements of a single data
type placed in contiguous locations from first to
last.
struct is a structure containing one or more scalar or
aggregate data types. The members are allocated
in the order they appear in the definition but do
not always occupy contiguous locations.
union is a single location that can contain any of a
specified set of scalar or aggregate data types.