我不明白Union是如何工作的。。
#include <stdio.h>
#include <stdlib.h>
int main()
{
union {
int a:4;
char b[4];
}abc;
abc.a = 0xF;
printf(" %d, %d, %d, %d, %d, %d\n", sizeof(abc), abc.a, abc.b[0], abc.b[1], abc.b[2], abc.b[3]);
return 0;
}
在上述程序中。
我做了int a : 4;
所以,a 应该占用 4 位。
现在我正在存储,a = 0xF; //i.e a= 1111(Binary form)
所以当我访问b[0 0r 1 or 2 or 3]
为什么输出不来时1, 1, 1, 1