看板 C_and_CPP 關於我們 聯絡資訊
在 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
james732: #1NVXeo-C (AndroidDev) 有回覆了~ 07/07 17:42
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