1.
typedef struct AA{
int b1 : 5;
int b2 : 2;
}AA;
void main()
{
AA aa;
printf("%d/n", ‘A‘);
char cc[100];
strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
memcpy(&aa,cc,sizeof(AA));//将sizeof(AA)个连续的字节空间(从cc开始),源和目的地不能重叠
printf("%d %d/n", aa.b1, aa.b2);
}
首先sizeof(AA)的大小为4,b1和b2分别占5bit和2bit.经过strcpy和memcpy后,aa的4个字节所存放的值是:
0,1,2,3的ASC码,即00110000,00110001,00110010,00110011所以,最后一步:显示的是这4个字节的前5位,和
之后的2位分别为:10000,和01,因为int是有正负之分
时间: 2024-10-06 07:16:21