在我们定义一个结构体后,因为存在字节对齐的缘故,所以会有资源浪费的情况,比如
typedef struct
{
int age;
char sex;
int number;
}student_t;
因为字节对齐的缘故,这样这个结构体的变量会占12个字节的空间,虽然sex变量是一个char型,但还是会按int型的空间处理
,为了解决这个问题,我们可以将这个结构体的定义放在两行代码中间:
#pragma pack (1)//使用伪指令C编译器将按照1个字节对齐
typedef struct
{
int age;
char sex;
int number;
}student_t;
#pragma pack ()//使用伪指令取消自定义字节对齐
这样定义的结构体变量占的空间会变成9个字节。