https://blog.csdn.net/tanqiuwei/article/details/7176334
https://blog.csdn.net/zuo_an/article/details/100554113
https://blog.csdn.net/chuocongzhou7584/article/details/101052952
#pragma pack(8)
typedef struct MyStruct {
unsigned char ucpa1 : 2;
unsigned char ucpa2 : 1;
unsigned char ucpa3 : 7;
unsigned char ucpa4 : 6;
unsigned char ucpa5 : 4;
unsigned char ucpa6 : 4;
unsigned char ucpa7;
unsigned long ulpa8;
} ABC;
int main(void)
{
ABC AAA;
// printf("p = %p\n", &(AAA.ucpa1)); // 位域不能用sizeof
// printf("p = %p\n", &(AAA.ucpa2));
// printf("p = %p\n", &(AAA.ucpa3));
// printf("p = %p\n", &(AAA.ucpa4));