看板 GameDesign 關於我們 聯絡資訊
※ 引述《littleshan (我要加入劍道社!)》之銘言: : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 61.62.3.35 : 推 StubbornLin:endian的問題@@? 那是什麼 囧 07/31 18:12 資料最小的儲存單位是 byte 而大於 1 byte 的資料就有兩種排法 比如說 0x11223344 這個數 在記憶體中可能是這樣 位址 內容 0x00 0x11 0x44 0x01 0x22 0x33 0x02 0x33 0x22 0x03 0x44 0x11 big endian little endian 使用 big endian 或 little endian 是取決於硬體架構 如果不管 endian 就直接用 fwrite 寫進檔案 那麼在另一種 endian 的機器上讀出來的結果就是錯的 : → StubbornLin:C++沒有規定阿....= =" 這點我不清楚 07/31 18:12 : → StubbornLin:因為 書上寫的long是4byte的長整數 07/31 18:13 : → StubbornLin:至於C++標準到底有沒有規定long之類的大小 07/31 18:13 : → StubbornLin:我就不知道了 = =" 至少我目前用的complier都是4bytes 07/31 18:13 : 推 doomleika:C/C++只有規定short int int long int之間的關係 07/31 18:43 所有型別的大小都是 char 的整數倍 而且 sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) 在我的 compiler 上 (AMD64 上的 gcc) long 的大小為 8 byte -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.3.35
LPH66:那如果型別大小要有像這樣portability要用什麼資料型態? 08/01 10:45
LPH66:難道都要用char去湊嗎? 08/01 10:48
HalfLucifer:Use typedef & #ifdef 08/02 15:11
sdk:有很多人寫過這類的preprocessor header..可以估一下.. 08/06 22:45