union {
unsigned char raw[8];
struct {
uint8_t gz_method;
uint8_t flag;
uint32_t mtime;
uint8_t xtra_flags_UNUSED;
uint8_t os_flags_UNUSED;
} PACKED formatted;
} header;
我知道union分配的内存是其变量的最大值。但这里是它分配内存为结构所占用的内容吗?
答案 0 :(得分:3)
整个联合将占用8个字节,因为这是其最大成员的大小。
实际上,在这种情况下,两个成员都具有相同的字节数(8)。因此,有两种方法可以访问数据:直接逐字节或逐字段。