main() {
union { // 定義一個聯合體
int i;
struct { // 聯合體中嵌套結構體
char first;
char second;
} half;
} number;
number.i = 0x4241; // 賦值整型
printf("%c%c\n", number.half.first, number.half.second);
// 輸出: AB (0x41='A', 0x42='B')
number.half.first = 'a'; // 賦值結構體成員
number.half.second = 'b';
printf("%x\n", number.i);
// 輸出: 6261 ('a'=0x61, 'b'=0x62)
}
i 賦值 0x4241 後,低八位 0x41 對應 first('A'),高八位 0x42 對應 second('B')。first、second 賦字符 'a'、'b' 後,其 ASCII 碼 0x61、0x62 成為 i 的低、高八位,組成 0x6261。此例直觀展示了聯合體成員共用內存、相互覆蓋的特性。