【发布时间】:2014-09-09 07:31:56
【问题描述】:
#include <string.h>
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
typedef struct AA {
int a1:5;
int a2:2;
} AA;
int main() {
AA aa;
char cc[100];
strcpy(cc, "0123456789");
memcpy(&aa, cc, sizeof(AA));
printf("%d\n", aa.a1);
printf("%d\n", aa.a2);
return 0;
}
我的意思是我知道sizeof(AA)是sizeof(int)等于4字节,并且在将"0123"复制到aa之后二进制数是
00110011,00110010,00110001,00110000
3 2 1 0
但我不明白哪些位是a1:5 或a2:2?
【问题讨论】:
标签: c structure bit-fields