#include <stdio.h>
struct c1{
unsigned int a:12;
unsigned int b:7;
};
struct c2{
unsigned int a:12;
unsigned int b:7;
};
int main(void)
{
struct c1 d1={257,'b'};
struct c2 d2={257,'b'};
printf("sizeof(struct c1)=%zu\n",sizeof(struct c1));
printf("sizeof(struct c2)=%zu\n",sizeof(struct c2));
printf("d1.a=%02X\n",d1.a);
printf("d1.b=%02X\n",d1.b);
printf("d2.a=%02X\n",d2.a);
printf("d2.b=%02X\n",d2.b);
for(int i=3;i>=0;i--)
printf("%02X ", *((unsigned char*)&d1 + i));
printf("\n");
for(int i=3;i>=0;i--)
printf("%02X ", *((unsigned char*)&d2 + i));
printf("\n");
getchar();
getchar();
return 0;
}



甚至每次运行的结果都不一样
struct c1{
unsigned int a:12;
unsigned int b:7;
};
struct c2{
unsigned int a:12;
unsigned int b:7;
};
int main(void)
{
struct c1 d1={257,'b'};
struct c2 d2={257,'b'};
printf("sizeof(struct c1)=%zu\n",sizeof(struct c1));
printf("sizeof(struct c2)=%zu\n",sizeof(struct c2));
printf("d1.a=%02X\n",d1.a);
printf("d1.b=%02X\n",d1.b);
printf("d2.a=%02X\n",d2.a);
printf("d2.b=%02X\n",d2.b);
for(int i=3;i>=0;i--)
printf("%02X ", *((unsigned char*)&d1 + i));
printf("\n");
for(int i=3;i>=0;i--)
printf("%02X ", *((unsigned char*)&d2 + i));
printf("\n");
getchar();
getchar();
return 0;
}



甚至每次运行的结果都不一样
