Keil Logo

BYTEALIGN Compiler Directive

Abbreviation

None.

Arguments

None.

Default

Structure pointers point to word-aligned structures.

µVision

Options — C166 — Misc Controls.

Description

The BYTEALIGN directive generates code that supports pointers to structure members that may start on byte boundaries. This directive is required when you use the PACK(1) directive.

See Also

PACK

Example
#pragma pack(1)     /* byte alignment */
#pragma BYTEALIGN

struct s1  {
  int  i1;       // i1 has offset 0
  char c1;       // c1 has offset 2
  struct s2  {
    int  i2;     // i2 has offset 3
    char c2;     // c2 has offset 5
    int  i3;     // i3 has offset 6
  }s2;
  char z1;       // z1 has offset 8
} s1;

struct s2 *s2p;

void main (void)  {
  s2p = &s1.s2;   // pointer to byte-aligned struct
  s2p->i2 = 0;    // access to byte-aligned int
}
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.