// 位段: 是啥? 为啥要用?
// 位段: 用来节省内存空间的
// 位段: 用来存储多个不同的数据
// 位段: 用来存储多个不同的数据, 但是这些数据的取值范围都比较小
// 位段的定义: struct 结构体名
// {
//     数据类型 变量名: 位数;
//     数据类型 变量名: 位数;
// };
// 位段的使用: 位段的使用和结构体的使用是一样的
// 位段的注意事项: 位段的位数不能超过数据类型的位数
#include <stdio.h>
struct
{
    char a : 3;
    short b : 9;
    short : 1; // 下一个变量的位段从新的存储单元开始
    int c : 19;
} p1;
int main()
{
    printf("p1 size: %lu B\n", sizeof(p1));
    return 0;
}