Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Intermediate
Aug 13, 1999

The Memory Alignment of a Union

In C and C++, a union is aligned according to the alignment requirements of its largest member. For example:

 
union U
{
  char c;
  short s;
  int i;
};

The union U has three members, each having a different size and alignment requirement. For instance, the member c occupies only a single byte and can be aligned on a byte boundary. The member i, on the other hand, occupies 4-bytes on a 32-bit architecture and can be located at a memory address that is evenly divisible by 4. Consequently, the compiler sees that every instance of U is located at a memory address that is evenly divisible by 4.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap