一,内存对齐的概念: 是编译器的“管辖范围”。 二,内存对齐的条件: 1,结构体成员存放的地址要能满足整除该成员本身大小。 eg:
struct A
{
char a
;
int b
;
};
2,前面所有成员的大小相加应该是当前成员大小的倍数。 eg:
struct B
{
int a
;
char b
;
short c
;
};
3,整个结构体的大小应该是单个最大成员的倍数。 eg:
struct C
{
char a
;
int b
;
short c
;
};
三,内存对齐的某些特殊情况 结构体内有结构体
struct D
{
char a
;
struct DD
{
int b
;
long c
;
}d
;
};
struct E
{
char a
;
struct EE
{
int b
;
long c
;
};
};