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
フィールドへの最初のバイトのみを読み取りたいだけです。