#include<stdio.h>
main()
{
struct value
{
int bit1 : 1;
int bit2 : 4;
int bit3 : 4;
}bit={1, 2, 2};
printf("%d %d %d\n",bit.bit1,bit.bit2,bit.bit3);
}
此代码的输出为“-1 2 2” 请澄清此输出背后的逻辑。bit.bit2 和 bit.bit3 的值始终与分配给它的值相同,但 bit.bit1 会随着不同的整数值而变化。为什么?