代码如下:#include structbit{inta:3;intb:2;intc:3;};intmain(intargc,char*argv[]){structbits;char*c=(char*)&s;*c=0x99;printf("s.a:%d;s.b:%d;s.c:%d\n",s.a,s.b,s.c);return0;}0x99的二进制编码是10011001,我认为的结果是这样:按照structbit各域的位数,s.a占3位,应该是100,s.b占两位,是11,s.c占3位,是001.但答案中s.a是001,s.b是11,s.c是100,和我想的顺序相反。输出结果也和答案一致:s.a:1;s.b:-1;s.c:-4请教一下,为什么是这样呢?
白猪掌柜的
函数式编程
相关分类