我试图使用 fread 从文件中读取比特流
fread(buff, buffSize, 1, fp);
.
buff is the buffer to which i am reading
.
buffSize is the size of buffer
,以及fp is the file pointer
我正在阅读的内容。将数据读取到缓冲区后,我尝试将缓冲区内容类型转换为另一个结构变量。结构的形式
typedef struct data
{
char id;
short value1;
short value2;
....
}data;
我所做的是
data* var;
var = (data*)buff;
然后我尝试访问结构内的变量,如果比特流是这样00 b0 11 c1 00
的话,
var->id
应该是0x00
. var->value1
应该是而且0xb011
应该var->value2
是0xc100
但我得到的是
var->id = 0x00;
var->value1 = 0x11c1;
...
为什么我没有达到预期的效果?当我将第一个参数类型更改为 short 时,值进入了var->id was 0x00b0
. 有没有像最小访问大小这样的东西2 Bytes
?如何解决这个问题?我只想读取第一个字节到var->id
字段。