聯合體 讓多個成員共享同一塊記憶體,這特性使其成為檢測系統大小端模式的經典工具。本文將從原理、程式碼實作到實際應用全方位解析。
int check_endian(void) {
union {
int i;
char c;
} u;
u.i = 1;
return (u.c == 1); // 1 = little-endian, 0 = big-endian
}

u.i = 1 時,最低位元組為 0x01,故 u.c == 10x00,故 u.c == 0union ASCII {
char c;
short i;
} m;
m.i = 70;
cout << "ASCII 70 的字元:" << m.c << endl; // 輸出 'F'
m.c = 'a';
cout << "字元 'a' 的 ASCII:" << m.i << endl; // 輸出 97
此例展示聯合體如何讓同一記憶體以不同型別解讀,驗證 ASCII 碼對應關係。