共用体所有成员共享同一段内存,适合节省空间或表示同一数据的不同视图。
union Number { int i; float f; unsigned u; }; union Number n; n.i = 0x3f800000; // 与 IEEE 754 视图相关(实现相关) printf("%u\n", n.u);
sizeof(union)
typedef struct { int tag; // 区分当前有效类型 union { int i; float f; } val; } Variant;
共用体适合节省空间与多视图表示,但要避免不定义行为,确保类型标签与访问一致。