Re: [程式] 小型2D線上遊戲心得分享 : 自訂圖檔

看板GameDesign (遊戲設計)作者 (我要加入劍道社!)時間18年前 (2006/08/01 07:05), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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

08/01 10:45, , 1F
那如果型別大小要有像這樣portability要用什麼資料型態?
08/01 10:45, 1F

08/01 10:48, , 2F
難道都要用char去湊嗎?
08/01 10:48, 2F

08/02 15:11, , 3F
Use typedef & #ifdef
08/02 15:11, 3F

08/06 22:45, , 4F
有很多人寫過這類的preprocessor header..可以估一下..
08/06 22:45, 4F
文章代碼(AID): #14peocLZ (GameDesign)
文章代碼(AID): #14peocLZ (GameDesign)