作者gn00618777 (非常念舊)
看板C_and_CPP
標題[問題] struct 強制轉換
時間Thu Jul 7 13:29:46 2016
在 android code 裡常看到強制轉換
一個 struct sensors_module_t{
struct hw_module_t common;
int (*abc)();
}
而在a程式宣告 sensor dule_t mSensorModule;
然後就直接call hw_get_module(*, (hw_module_t**)&mSensorModule)
hw_get_module 的原型是 hw_get_module(const char*,hw_module_t**)
這樣做強制轉換在c來講有甚麼用意嗎?
謝謝。
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.69.181
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1467869390.A.D9F.html
※ 編輯: gn00618777 (61.220.69.181), 07/07/2016 13:31:36
※ 編輯: gn00618777 (61.220.69.181), 07/07/2016 13:31:59
推 james732: 話說我覺得你在AndroidDev發的那篇清楚多了 07/07 14:15
→ notBeing: 從你本篇與androidDev板上的另一篇,應該是為了實作 07/07 15:55
→ notBeing: polymorphism 07/07 15:55
推 steve1012: C沒繼承 就用cast 來強制轉換 07/08 07:58
推 yvb: 在Android HAL前,其實Linux HAL等實作,甚至其它OS內部實作, 07/08 12:25
→ yvb: 早就這樣玩了... 甚至 socket programming: bind(),connect() 07/08 12:26
→ yvb: 其中的 sockaddr 就是這樣, 只不過共用的只有 sa_family :P 07/08 12:31
→ yvb: 再從另一種觀點, 把common當作header,後續當作 payload, 07/08 12:37
→ yvb: 就是一個封裝的概念. 07/08 12:37
→ gn00618777: 謝謝解說,我在Androiddev 也有發表一下心得~一起討論 07/09 09:57