代碼片段:
union T { int i; char c[2]; };
union T a;
a.i = 0x00006162;
putchar(a.c[0]); // 輸出 'b'
putchar(a.c[1]); // 輸出 'a'
0x 前綴表示 hex,每兩位對應一字節62 61 00 00c[0] 訪問最低字節 0x62 ('b'),c[1] 訪問次低字節 0x61 ('a')C 語言中 0 開頭表示八進制,例如 0123 = 8310。
printf("%p %p\n", (void*)&a.c[0], (void*)&a.c[1]);
// 輸出地址遞增,確認小端序
理解端序與聯合體,是嵌入式、網絡協議、文件格式解析的基礎功。