打印

大侠们*(U32 *)downPt是什么意思,有点迷糊。

[复制链接]
5133|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
d0112319|  楼主 | 2011-9-15 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, TI, ARM, FOR, USB
是ARM中USBD例程,大题是这样的:extern volatile U8 *downPt;RdPktEp3((U8 *)downPt, 8);        void RdPktEp3(U8 *buf,int num){    int i;                for(i=0;i<num;i++)    {        buf[i]=(U8)rEP3_FIFO;            }}download_addr = *(U32 *)downPt;   download_len  = *(U32 *)(downPt+4);后面的这两句是把指针downPtv的地址赋给download_addr吗?不太明白,哪位大侠给解释一下,谢谢!

相关帖子

沙发
d0112319|  楼主 | 2011-9-15 11:45 | 只看该作者
代码怎么这么乱是这样的?
extern volatile U8 *downPt;
RdPktEp3((U8 *)downPt, 8);       
void RdPktEp3(U8 *buf,int num)
{
    int i;
           
    for(i=0;i<num;i++)
    {
        buf[i]=(U8)rEP3_FIFO;       
    }
}
download_addr = *(U32 *)downPt;
download_len  = *(U32 *)(downPt+4);

使用特权

评论回复
板凳
xinzha| | 2011-9-15 13:30 | 只看该作者
这些都是c里面指针的用法,lz去查查c语言的书是最好的,别人告诉你怎么回事对你没帮助。

使用特权

评论回复
地板
laoqian112| | 2011-9-15 13:31 | 只看该作者
将downPt+4转化为U32型指针。然后,将这个指针指向地址的值赋给download_len。

使用特权

评论回复
5
d0112319|  楼主 | 2011-9-15 14:47 | 只看该作者
有C语言的书,没找到这个方面的内容,书上就介绍了指向指针的指针,就是**P,感觉和这个也不太一样。
看C语言书记不住,想做实践中在学习一下。
3# xinzha

使用特权

评论回复
6
d0112319|  楼主 | 2011-9-15 14:52 | 只看该作者
是不是这个(U32 *)作用是把downPt强制转换成32位指针,在加上*(U32 *)downPt就是取其指向地址的值,这个和*downPt有什么区别,*downPt也是取指向地址的值?

使用特权

评论回复
7
ADaiPlay| | 2011-9-22 21:27 | 只看该作者
楼主还在看USBD吗?我也正在看呢,交流交流。这个地方不去纠结也没关系吧,知道这是将从USB第一个传输包里将传输地址和文件大小读取出来,就足够了吧

使用特权

评论回复
8
d0112319|  楼主 | 2011-11-13 16:54 | 只看该作者
我这本来就是业余,也算不上爱好吧,反正就是没事干实在无聊了就看看,本身我是做结构的。现在搞定了USB固件程序,发现还要开发USB驱动程序和上位机程序,原来学过C没学过C++,看来要开发驱动和上位机程序,需要先学学VC++了。

使用特权

评论回复
9
xhtxzxw| | 2011-11-13 21:31 | 只看该作者
不复杂的指针问题。估计LZ的老师对指针很迷糊(我的经验,愿意来二姨妈家问C的,都至少对C有  性 娶)。
用剥大葱的思路就很容易理解了:
*(U32 *)downPt ===> *** + 瓤(U32 *)downPt ====>*** + 真皮(U32 *) + 核downPt。
downPt不管是它什么类型,加上真皮,就成为指针了。
“(U32 *)downPt” 是一个指向32位无符号数的指针;
*指针 = 指针所指的值
所以“*(U32 *)downPt”就是:将downPt作为指向32位无符号数的指针(即:将downPt的值作为地址),取这个指针所指的值。

使用特权

评论回复
10
abmin| | 2011-11-14 10:49 | 只看该作者
9楼详细!

使用特权

评论回复
11
ninicaoyuan| | 2014-10-31 11:24 | 只看该作者
9#形象,赞

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

粉丝