作者meanid (meanid)
看板EE_DSnP
標題[問題] getRecycleIdx
時間Mon Nov 21 21:56:24 2011
爬了以前的文 但還是不是很懂
如果說只是要回傳_arrSize
但是t如果不是sizeof(T)的整數倍怎麼辦?
應該回傳哪個_recycleList[]的_arrSize呢?
還是說要像類似toSizeT()一樣??
麻煩指教一下 謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.108
※ 編輯: meanid 來自: 140.112.25.108 (11/21 21:57)
1F:推 ric2k1:t 的大小要足以包含一個 SIZE_T 的空間存 array size, 以及 11/21 22:13
2F:→ ric2k1:n*S 的空間存 n 個 memTestObjs. 11/21 22:14
3F:→ ric2k1:至於在傳給 getRecycleList() 之前要確定他是 SIZE_T的倍數 11/21 22:15
4F:→ ric2k1:應該用 toSizeT() 還是 downtoSizeT() 就看應用的情形囉! 11/21 22:15
5F:推 ric2k1:簡單的說 (S = 36) ==> getRecycleList(42) = 1 for 32-bit 11/21 22:16
6F:推 ric2k1:上面推錯... 應該是 getRecycleList(40) = 1 11/21 22:17
7F:→ ric2k1: 再一個例子 getRecycleList(184) = 5 for 32-bi 11/21 22:18
8F:→ meanid:謝謝教授!y 11/21 22:58
9F:→ meanid:所以說getRecycleIdx(42) 應該是 2嗎(for 32-bit) 11/21 23:58
10F:推 ric2k1:code 裏頭有 "assert(t % SIZE_T == 0);", 所以要在外面 11/22 00:27
11F:→ ric2k1:就確認傳進來的 t 是 SIZE_T 的倍數。所以不應該有42的情況 11/22 00:28
12F:推 yanshencun:所以 getRecycleIdx(64) 要是 1 嗎?(for 32-bit) 11/23 01:06
13F:推 ric2k1:getRecycleIdx(64) --> 1 (if S = 36), 但是應該不會有人 11/23 01:14
14F:→ ric2k1:(推錯) 請忽略 "但應該... 11/23 01:15