社区
高通开发者论坛
帖子详情
关于(iname*)(void*)p这种用法,对于其中的(void*)作用百思不得其解
sliver86
2010-12-21 01:04:46
在aee.h中有看到(iname*)(void*)p此种用法...对于其中的(void*)作用百思不得其解,貌似不影响,但是高通又为什么要这么做呢?谢谢!
...全文
1743
7
打赏
收藏
关于(iname*)(void*)p这种用法,对于其中的(void*)作用百思不得其解
在aee.h中有看到(iname*)(void*)p此种用法...对于其中的(void*)作用百思不得其解,貌似不影响,但是高通又为什么要这么做呢?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sliver86
2010-12-21
打赏
举报
回复
...看来我还不是一点点...我在加班,脑残了...
让我想想...虽然赋值会报错...但是强制类型转换的时候不会报错吧?
还是说也会报错...?囧...
总之,可以明确一点就是,确实是为了编译器能顺利编译通过....因为我去掉过void*虽然没报错,但也不影响使用....
sliver86
2010-12-21
打赏
举报
回复
这边谢谢melody1304了!回去翻了下void*指针的用法就清楚了....举个例子当时就会好多了...
例如:
float *p1;
int *p2;
p1 = p2;
其中p1 = p2语句会编译出错,提示“'=' : cannot convert from 'int *' to 'float *'”,必须改为:
p1 = (float *)p2;
而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:
void *p1;
int *p2;
p1 = p2;
最后也谢谢instantboy...本来看到这句还挺生气的...后来看到真正的原因发现还是自己C没学好...
不过,C博大精深,就像我们的产品,不可能没有BUG再量产嘛~一点点不足缺点,暂时能用就成....囧
instantboy
2010-12-21
打赏
举报
回复
呵呵,这个如果不理解的话,建议先好好学学c语言再来学brew,不然就是浮沙筑高台
melody1304
2010-12-21
打赏
举报
回复
能不能转换要看不同的编译器和编译的等级,有些编译器只会报警告,而有些编译器可能就直接报错了
sliver86
2010-12-21
打赏
举报
回复
[Quote=引用 2 楼 melody1304 的回复:]
先把p转换成void*,再将void* 转换成iname*,这个任何编译器都是允许的,虽然经过了一次转换,但是必要的,因为如果你直接将p转换成iname* ,可能编译器会报错,不是说有的显式转换都可以的
[/Quote]
那能请问,什么情况下不能直接转换,什么情况下能直接转换呢?
照理说,都是指针的转换,都占用4个字节(32位机器),对编译器的设计来说,也没必要非要转换下void*呀
最后,以前看过一篇文档,高通为了实现虚表的可行性,不是必须编译器相关么?
谢谢呀!
melody1304
2010-12-21
打赏
举报
回复
先把p转换成void*,再将void* 转换成iname*,这个任何编译器都是允许的,虽然经过了一次转换,但是必要的,因为如果你直接将p转换成iname* ,可能编译器会报错,不是说有的显式转换都可以的
BuleRiver
2010-12-21
打赏
举报
回复
不知道。
用C模拟实现COM机制
COM似乎生来就与C++有关,虽然它一再强调COM本身与语言无关,但由于C语言本身对面相对象支持不够好,也就似乎和COM离得比较远,但也不是不能实现。本文用C模拟实现了COM机制,对于一些在如BREW平台上开发的程序员,和想更深入学习C语言的人或许有那么一点微薄的帮助。
Brew如何用C模拟面向对象的思想
该资源是我在培训期间所用的文档,里面涉及到了许多关于Brew开发的实例,感觉很好,分享给大家,希望大家能从中学习所要的知识。
工厂模式和反射
工厂模式
这个例子让你更加的理解工厂模式和反射的应用
--------动态的创建对象
linux下批量赋予脚本执行权限
find "$PWD" -type f \( -
iname
'*.sh' -o -
iname
'*.csh' -o -
iname
'*.ksh' -o -
iname
'*.pl' -o -
iname
'*.bin' -o -
iname
'*.run' -o -
iname
'*.bundle' -o -
iname
'*.rb' -o -
iname
'*.py' \) -print0 | xargs -0 chmod +x
find
iname
shell_find 的命令的使用方法。
1. findfind pathname -options [-print -exec -ok]让我们来看看该命令的参数:pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print find命令将匹配的文件输出到标准输出。-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}...
高通开发者论坛
3,770
社区成员
5,820
社区内容
发帖
与我相关
我的任务
高通开发者论坛
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
复制链接
扫一扫
分享
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能
物联网
机器学习
技术论坛(原bbs)
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章