Little-endian模式意味著數據的高字節存儲在內存的高地址,而數據的低字節存儲在內存的低地址。
例如
int a = 1;
是0x 00 00 00 01,壹個是32bit,四個字節,內存地址是連續的,比如起始地址為0x400001的內存地址,
在大端模式下
第壹位是0x00(地址是0x400001)。
第二位是0x00(地址0x400002)。
第三位是0x00(地址0x400003)。
第四位是0x01(地址是0x400004),高位地址保存低位字節。
小端模式則相反。
在C語言中,關鍵字union維護足夠的空間來放置“壹種”多個數據成員,而不是為每個數據成員分配空間。在union中,所有數據成員* * *使用壹個空間,同壹時間只能存儲壹個數據成員,所有數據成員的起始地址相同。例子如下:
聯合國家機器
{
char字符;
int數;
char * str
雙倍exp
};
union只配置了足夠大的空間來容納最大長度的數據成員。在上面的例子中,最大長度是double類型,所以狀態機的空間大小就是double數據類型的大小。