1.结构体
结构体对齐(了解)
概述
typedef struct Data01
{
char a;
int b;
}Data01;
typedef struct Data02
{
char a;
char b;
}Data02;
void fun01(){
printf("%ld\n",sizeof(Data01));
printf("%ld\n",sizeof(Data02));
}
特点:
不对齐
优点:占用空间小
缺点:速度慢
对齐
优点:速度快
缺点:占用空间大
注意
如果在结构体中出现了数组,数组可以看成多个变量的集合
自动对其原则
原则
1,
结构体中的第一个成员在与结构体变量
,
偏移量为
0
的地址处
2,
确定结构体的分配单位(结构体体中最大的基本类型长度)
3,
其他成员的偏移量
==
成员自身长度的整数倍
4,
收尾工作:结构体的总大小
==
分配单位的整数倍。
注意
:
按成员顺序从上向下
示例
typedef struct Data01
{
char a;
int b;
}Data01;
typedef struct Data02
{
char a;
char b;
}Data02;
typedef struct Data03
{