首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

结构体中的符号扩展有关问题

2012-03-17 
结构体中的符号扩展问题typedefstruct{inta:2intb:2intc:1}testtesttt.a1t.b3t.c1printf( %d

结构体中的符号扩展问题
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个输出都是负的

热点排行