作者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://webptt.com/cn.aspx?n=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
1F:推 james732: 话说我觉得你在AndroidDev发的那篇清楚多了 07/07 14:15
2F:→ notBeing: 从你本篇与androidDev板上的另一篇,应该是为了实作 07/07 15:55
3F:→ notBeing: polymorphism 07/07 15:55
5F:推 steve1012: C没继承 就用cast 来强制转换 07/08 07:58
6F:推 yvb: 在Android HAL前,其实Linux HAL等实作,甚至其它OS内部实作, 07/08 12:25
7F:→ yvb: 早就这样玩了... 甚至 socket programming: bind(),connect() 07/08 12:26
8F:→ yvb: 其中的 sockaddr 就是这样, 只不过共用的只有 sa_family :P 07/08 12:31
9F:→ yvb: 再从另一种观点, 把common当作header,後续当作 payload, 07/08 12:37
10F:→ yvb: 就是一个封装的概念. 07/08 12:37
11F:→ gn00618777: 谢谢解说,我在Androiddev 也有发表一下心得~一起讨论 07/09 09:57