求解释,为什么,该如何解决
求解释,为什么先一段小程序C/C++ code#include stdio.h#include stdlib.htypedef struct bitstruct{in
求解释,为什么
先一段小程序
C/C++ code#include <stdio.h>#include <stdlib.h>typedef struct bitstruct{ int b1:5; int :2; int b2:2;}bitstruct;int main(){ bitstruct b; memcpy(&b,"EMC",sizeof(b)); printf("%d,%d\n",b.b1,b.b2);}
已知E的ASCII码是0x45(0100 0101),M是0x4D(0100 1101)
为什么输出是5,-2?
[解决办法]大端小端问题
[解决办法][解决办法]typedef struct bitstruct{
int b1:5;
int :3;
int b2:2;
}bitstruct;
改成3应该就是lz想要的了
5,1
[解决办法]ansi c 中对 bit field 论述极少,是因为其严重依赖实现的平台,移植性很差,要用时最好先在平台上试验一下