[問題] typedef unsigned

看板C_and_CPP作者 (一發不可收拾)時間12年前 (2012/06/03 00:24), 編輯推噓1(1018)
留言19則, 7人參與, 最新討論串1/1
開發平台(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)

06/03 00:27, , 1F
正確的說法是,因為 unsigned int 不確定是幾個 bytes,
06/03 00:27, 1F

06/03 00:28, , 2F
可能因為作業系統、compiler而有所不同,所以給的位元不
06/03 00:28, 2F

06/03 00:28, , 3F
同,早期在 C 為了可攜作法,所以用 typedef U32 方式.
06/03 00:28, 3F

06/03 00:29, , 4F
確保一定會是32 bits無號數 (換平台只要換typedef便可)
06/03 00:29, 4F

06/03 00:36, , 5F
可再加註 x,y, 作業系統,詳細錯誤訊息為佳。
06/03 00:36, 5F

06/03 00:36, , 6F
user breakpoint call ? 你有設中斷點嗎?
06/03 00:36, 6F

06/03 00:50, , 7F
謝謝T大!!U32一般使用都很正常 回樓上: 沒有耶
06/03 00:50, 7F

06/03 00:52, , 8F
U32 大小真的是 32 bits, 但並不代表最大值是 2^32-1
06/03 00:52, 8F

06/03 00:54, , 9F
想知道最大值請使用 http://ppt.cc/fhjp 拜託別自己猜
06/03 00:54, 9F

06/03 00:54, , 10F
^就算 (補樓樓上)
06/03 00:54, 10F

06/03 02:33, , 11F
我菇狗了一下,user breakpoint..可能是電腦的問題!!?
06/03 02:33, 11F

06/03 19:03, , 12F
e大又變回t大了
06/03 19:03, 12F

06/03 20:35, , 13F
32bits的unsigned int最大值不是 2^32 - 1 ? @@
06/03 20:35, 13F

06/03 20:37, , 14F
請參照維基百科:Integer (computer science)
06/03 20:37, 14F

06/03 22:47, , 15F
l大的意思是說,你不能肯定你的系統就是你預想的那樣
06/03 22:47, 15F

06/03 23:00, , 16F
google 'padding'
06/03 23:00, 16F

06/04 02:56, , 17F
erotic: uint32_t 是你想的那樣,但 unsigned int 不是。
06/04 02:56, 17F

06/04 02:57, , 18F
「不是」的定義是... 符合 C 標準的實作大可不甩你 xD
06/04 02:57, 18F

06/04 10:58, , 19F
哦,了解 @@
06/04 10:58, 19F
文章代碼(AID): #1FoZv8t0 (C_and_CPP)