C语言对齐、补齐
加快CPU读取数据的速度
aligned(n)
让所作用的结构成员对齐在n字节自然边界上。如果结构中有成员的长度大于n,则按照最大成员的长度来对齐
struct s
{
char c;
int i;
short s;
}__attribute__((aligned(1)));
sizeof:12
packed
取消编译过程中的优化对齐,按照实际占用字节数进行对齐
struct s
{
char c;
int i;
short s;
}__attribute__((packed));
sizeof:7
pack(n)
#pragma pack(1)
struct s
{
char c;
int i;
short s;
};
#pragma pack() //取消
sizeof:7
空间换时间
struct s
{
char c;
char reserved[3]; //空间换时间
int i;
};
图解