A decimal number
(1 or 2) enclosed in
parentheses.
Default
PACK(2)
µVision
Options — C251 —
Misc Controls.
Description
The PACK directive causes the compiler to generate
byte-aligned or half-word-aligned structures. This is useful when
exchanging data with other systems where no alignment is
required.
Note
By default, the compiler assumes that structure members are
aligned on byte boundaries. PACK(2) may increase the size
of a structure since alignment gaps are inserted for
padding.
Example
#pragma pack(1) /* byte alignment */
struct s1 {
int i1; // i1 has offset 0
char c1; // c1 has offset 2
int i2; // i2 has offset 3
char c2; // c2 has offset 5
int i3; // i3 has offset 6
char z1; // z1 has offset 8
};
#pragma pack() /* reset to default alignment */
struct s2 {
int i1; // i1 has offset 0
char c1; // c1 has offset 2
int i2; // i2 has offset 4
char c2; // c2 has offset 6
int i3; // i3 has offset 8
char z1; // z1 has offset 10
};
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.