作者WPC001 (突然覺得自己是孤獨的...)
看板C_and_CPP
標題Re: [問題] 判斷Big Endian系統 or Little Endian系統
時間Sat Aug 28 10:34:02 2010
※ 引述《TopStephen (給我21天的時間)》之銘言:
: ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
: ( 未必需要依照此格式,文章條理清楚即可 )
: 遇到的問題: (題意請描述清楚)
: 寫一段程式判斷目前系統是 Big Endian or Little Endian
: 小弟很直覺寫了下面這一段,但找不到Big Endian的機器可以驗證
: bool IsBigEndian()
: {
: char val = 0x1234;
: return (val==0x12);
: }
: 這麼方法不知道行不行得通?
: 有人可以幫忙驗證這個方法嗎?
: 感謝!
應該改用32bits來判斷比較好
BOOL GetEndianType()
{
uint32_t val = 0xaabbccdd;
char* pAddr = (char*)&val;
return *pAddr == 0xaa;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.71.58
→ tsaiminghan:可以問一下為什麼32bits比較好嗎? 08/28 10:35
→ loveme00835:我也很好奇 @_@ 08/28 10:36