我有以下类型定义:
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;
但是,上面的行打印了两个不同的值,即129 ü
显然LineDescriptor.Entry
是指保存值 0x81 的内存位置。我不确定 40 发生了什么。但很明显我的假设是错误的。有人可以正确解释和解释类型定义吗?理解它对我使用我找到的代码至关重要。
先感谢您。