[問題] 給個type X求大小

看板C_and_CPP (C/C++)作者 (好人超)時間15年前 (2010/12/27 17:06), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
如果給一個未知的型態X 在不宣告變數與指標變數的前提下 要怎麼求出X的大小? 之前有看過 offsetof 的寫法: #define offsetof(type, f) ((size_t) \ ((char *)&((type *)0)->f - (char *)(type *)0)) 不過如果不是求 offset 而是求 size 的話,我就想不出來了... 另外有個問題,順便問一下好了 下面這個函式會有什麼問題? int square(volatile int *value) { return *value * *value; } 我想得到的只有 (1)volatile 很多餘(但似乎無害?) (2)int乘上int可能會溢位 不知道還有其他的問題嗎? ps. 這是某公司的面試問題 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46

12/27 17:25, , 1F
直接 sizeof()?
12/27 17:25, 1F

12/27 17:26, , 2F
http://codepad.org/NWAOXA6J 不知道是不是你要的
12/27 17:26, 2F
我忘記題目上面有寫「不可以使用sizeof」了 XD 真是不好意思

12/27 17:37, , 3F
(ptrdiff_t)( (X*)0 + 1 ) - (ptrdiff_t)( (X*)0 )
12/27 17:37, 3F
原來如此,(Y)

12/27 17:38, , 4F
第二個應該跟記憶體的管理還有多執行緒有關
12/27 17:38, 4F
不過題目沒有強調這件事,所以讓我有點疑惑 ※ 編輯: james732 來自: 140.117.171.46 (12/27 17:45)
文章代碼(AID): #1D65SGWN (C_and_CPP)
文章代碼(AID): #1D65SGWN (C_and_CPP)