在定义了结构体变量之后,系统会根据结构体类型中包含的成员情况为之分配内存。计算机对内存的管理是以“字”为单位的(大多数计算机系统以4个字节为一个“字”)。如果在一个“字”中之存放一个字符,虽然只占一个字节,但该“字”中的其他3个字节不会接着存放下一个数据,而会从下一个“字”开始存放其他数据。结构体贬所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元,所以在计算结构体变量的内存时,会产生内存对齐,即结构体的内存大小必然是其所含成员中最长成员长度的倍数。
例如:
struct A
{
int a;
char b;
short c;
double