关于位段,该如何解决
关于位段
为什么在执行x.a=1后打印结果是1,而执行x.a+=1后,打印结果变成啦-2,不应该是01+01=10吗?
------解决思路----------------------
大概是补码问题吧,你写成unsigned int a:2就是2了。
------解决思路----------------------
10就是-2
11是-1
struct
{
int a:2;
}x;
..............
x.a=1;
x.a+=1;
printf("%d\n",x.a);
为什么在执行x.a=1后打印结果是1,而执行x.a+=1后,打印结果变成啦-2,不应该是01+01=10吗?
------解决思路----------------------
大概是补码问题吧,你写成unsigned int a:2就是2了。
------解决思路----------------------
10就是-2
11是-1