0
我试图读取使用的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
字段。
谢谢cnicutar ....这真的工作 – jithin 2013-03-02 21:35:16