结构体中的符号扩展问题
typedef struct
{
int a:2;
int b:2;
int c:1;
}test;
test t;
t.a=1;
t.b=3;
t.c=1;
printf( "%d ",t.a);
printf( "%d ",t.b);
printf( "%d ",t.c);
结果是1,-1,-1,第三个为什么是-1?
[解决办法]
int a:2;
int b:2;
int c:1;
t.a=1; // 数据就是 01 (1)
t.b=3; // 数据就是 11 (-1)
t.c=1; // 数据就是1 (-1)
[解决办法]
int 是有符号数
最高位为符号位
所以第3个和第2个输出都是负的