看板 C_and_CPP 關於我們 聯絡資訊
如果給一個未知的型態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
michael0728n:直接 sizeof()? 12/27 17:25
michael0728n: http://codepad.org/NWAOXA6J 不知道是不是你要的 12/27 17:26
我忘記題目上面有寫「不可以使用sizeof」了 XD 真是不好意思
loveme00835:(ptrdiff_t)( (X*)0 + 1 ) - (ptrdiff_t)( (X*)0 ) 12/27 17:37
原來如此,(Y)
loveme00835:第二個應該跟記憶體的管理還有多執行緒有關 12/27 17:38
不過題目沒有強調這件事,所以讓我有點疑惑 ※ 編輯: james732 來自: 140.117.171.46 (12/27 17:45)