32os | 64os | |
---|---|---|
char | 1字节对齐 | 1字节对齐 |
short | 2字节对齐 | 2字节对齐 |
int | 4字节对齐 | 4字节对齐 |
long | 4字节对齐 | 8字节对齐 |
float | 4字节对齐 | 4字节对齐 |
double | 4字节对齐(分配两次) 总共使用8字节 | 8字节对齐 |
struct person
{
char name[20];
int age;
};
24字节对齐情况
struct person
{
char a;
char b[10];
int c ;
};
16字节对齐情况
struct person
{
char a;
short b;
char c;
int d;
};
12 字节对齐情况
嵌套结构体
struct inner {
char a;
int b;
long c;
};
struct outer {
char c;
char e;
struct inner d;
char f;
long g;
};
嵌套模型运行情况
嵌套模型字节对齐情况
struct inner {
char a;
int b;
};
struct char1 {
char a;
};
struct outer {
char c;
char e;
struct char1 h;
struct inner d;
char f;
long g;
};
嵌套模型验证2