| 
 
| 高效使用 union 的策略 共享内存的成员:
 如果你的程序在某个时间点只需要使用一种数据类型,可以用 union 来减少内存消耗。例如,一个通信协议的数据包可能在不同的时间只存储一种类型的数据。
 c
 复制代码
 typedef union {
 uint8_t raw[32];
 struct {
 uint16_t header;
 uint8_t payload[28];
 uint16_t checksum;
 } structuredData;
 } Packet;
 位域与 union 结合:
 位域可以与 union 结合使用,以便在单个位或位段层面上优化内存使用。这在处理标志或多个状态位时特别有用。
 c
 复制代码
 typedef union {
 struct {
 uint16_t flag1 : 1;
 uint16_t flag2 : 1;
 uint16_t flag3 : 1;
 uint16_t reserved : 13;
 } bits;
 uint16_t allFlags;
 } Flags;
 不同数据视图:
 使用 union 来表示同一数据的不同视图。例如,将数据包视为字节数组或特定格式的数据结构。
 c
 复制代码
 typedef union {
 struct {
 uint16_t x;
 uint16_t y;
 } coordinates;
 uint32_t point;
 } PointUnion;
 
 
 | 
 |