私は次の型の定義を持っています:
typedef union{
unsigned int Entry;
struct {
unsigned char EntryType;
unsigned char EntryOffset[3];
};
} TLineDescriptor;
私はまた、このタイプを次のように使用しています。
TLineDescriptor LineDescriptor;
LineDescriptor.Entry = 40;
LineDescriptor.EntryType = 0x81;
sizeof(LineDescriptor)
は、この変数が4バイトのメモリを占有していることを示しています。これは、最初はintまたはstructのいずれかを保持していると想定していました。
cout << LineDescriptor.Entry << " " << LineDescriptor.EntryType << endl;
ただし、上の行は2つの異なる値を出力します。つまり129 ü
、LineDescriptor.Entry
値0x81が保存されたメモリ位置を参照しているようです。40で何が起こったのかわかりません。しかし、私の仮定が間違っていたことは明らかです。誰かが型の定義を正しく解釈して説明できますか?見つけたコードを操作することは私にとって非常に重要です。
前もって感謝します。