私が持っているのはこれです
struct Record
{
unsigned char cat;
unsigned char len[2]={0x00, 0x1b}; // can't put short here because that
// whould change the size of the struct
unsigned char dat[253];
};
Record record;
unsigned short recordlen = *((unsigned short*)record.len);
これにより、recordlen=0x1b00
代わりに0x001b
と同じ*reinterpret_cast<unsigned short*>(record.len)
理由を説明できますか?これをどのように行うべきですか?