下面主要敘述兩種不同的辨別cpu位元組序的函式,由於程式比較簡單,不再新增注釋了。
#include bool islittleendian1(void)
else }
bool islittleendian2(void)
a; a.i = 1;
if (a.j==1)
else }
int main(void)
else
if (islittleendian2() == true)
else
return 0;
}
第一種方法是通過將int強制型別轉換成char來判斷位元組序,第二種方法是通過建立乙個儲存有int型和char型的4位元組共同體來判斷,本質上是一樣的,只是實現手法不同而已。
判斷CPU大小端儲存
首先明白big endian和little endian的位元組排序含義 big endian 乙個word中的高位的byte放在記憶體中這個word區域的低位址處。little endian 乙個word中的低位的byte放在記憶體中這個word區域的低位址處。例如 如果我們將0x1234abcd...
判斷CPU的大小端
原文出處 下面的兩個程式均可判斷cpu的大小端問題 int i 1 char p char i if p 1 printf little endian little endian else printf big endian big endian 大小端儲存問題,如果小端方式中 i佔四個位元組的長度...
CPU大小端位元組序的檢測
機器的位元組序有兩種,即大端位元組序和小端位元組序。大端位元組序 在記憶體中,低位址存放資料的 高位,高位址存放資料的 低位 小端位元組序 在記憶體中,低位址存放資料的 低位,高位址存放資料的 高位 如例 定義資料 a 0x01020304 小端方式 01 02 03 04 大端方式 04 03 0...