作者Yifabooksos (一發不可收拾)
看板C_and_CPP
標題[問題] typedef unsigned
時間Sun Jun 3 00:24:36 2012
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC 6.0
問題(Question): 最近在看以前學長寫的程式
看到他定義一個型別
typedef unsigned U32;
我想請問這個U32 是unsigned int的意思嘛!!???
所以可以存最大到 2^32 沒錯吧???
假如定義一個U32 **matrix
matrix[x][y]=z ,裡頭每一個z最大都可以存到2^32嗎???
現在程式跑到很大時候會掛掉,正在推測可能的原因
(跑出user breakpoint call for code at 0x......)
不知道是不是memory不夠用的關係@@
謝謝各位大大耐心看完 解救我謝謝<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.160.134
※ 編輯: Yifabooksos 來自: 118.169.160.134 (06/03 00:25)
→ tropical72:正確的說法是,因為 unsigned int 不確定是幾個 bytes, 06/03 00:27
→ tropical72:可能因為作業系統、compiler而有所不同,所以給的位元不 06/03 00:28
→ tropical72:同,早期在 C 為了可攜作法,所以用 typedef U32 方式. 06/03 00:28
→ tropical72:確保一定會是32 bits無號數 (換平台只要換typedef便可) 06/03 00:29
→ tropical72:可再加註 x,y, 作業系統,詳細錯誤訊息為佳。 06/03 00:36
推 LPH66:user breakpoint call ? 你有設中斷點嗎? 06/03 00:36
→ Yifabooksos:謝謝T大!!U32一般使用都很正常 回樓上: 沒有耶 06/03 00:50
→ loveme00835:U32 大小真的是 32 bits, 但並不代表最大值是 2^32-1 06/03 00:52
→ loveme00835:^就算 (補樓樓上) 06/03 00:54
→ Yifabooksos:我菇狗了一下,user breakpoint..可能是電腦的問題!!? 06/03 02:33
→ diabloevagto:e大又變回t大了 06/03 19:03
→ erotic:32bits的unsigned int最大值不是 2^32 - 1 ? @@ 06/03 20:35
→ erotic:請參照維基百科:Integer (computer science) 06/03 20:37
→ diabloevagto:l大的意思是說,你不能肯定你的系統就是你預想的那樣 06/03 22:47
→ loveme00835:google 'padding' 06/03 23:00
→ Favonia:erotic: uint32_t 是你想的那樣,但 unsigned int 不是。 06/04 02:56
→ Favonia:「不是」的定義是... 符合 C 標準的實作大可不甩你 xD 06/04 02:57
→ erotic:哦,了解 @@ 06/04 10:58