搜索
bottom↓
回复: 9

记录:学习UCOS-II的收获-二级指针的用法.

[复制链接]

出35入0汤圆

发表于 2014-12-21 13:22:52 | 显示全部楼层 |阅读模式
最近学习ucos,今天终于弄懂了二级指针的用法.
以下是UCOS-II中os_core.c里的一个函数,用到了二级指针.通过学习此指针,将我心中有关 **p 的阴影去除了.
INT16U  OSEventPendMulti(OS_EVENT **pevents_pend,OS_EVENT **pevents_rdy,void **pmsgs_rdy,INT32U timeout,INT8U *perr)
{
    OS_EVENT  **pevents;
    OS_EVENT   *pevent;
    ...
   *pevents_rdy = (OS_EVENT *)0;//Init array to NULL in case of errors
    pevents     =  pevents_pend;//pointer to the pointer array address.
    pevent      = *pevents;//content of the pointed pointer.
    while(pevent!=(OS_EVENT *)0)
                {
                        switch (pevent->OSEventType){//Validate event block types
                        ...
                        }
                        pevents++;
                        pevent = *pevents;
    }
    ...
}


OS_EVENT **pevents_pend
OS_EVENT  **pevents;
OS_EVENT   *pevent;
说明.

在申明二级指针时,用两个**加变量名即可.
在函数中,有:
OS_EVENT **pevents_pend,为函数的参数.
1)pevents        =pevents_pend;
2)pevents++;
3)pevent        = *pevents;
等操作,由这几句,可以知道:
1)二级指针的赋值方式,将 二级指针变量=二级指针变量 即可.
2)二级指针操作方法,自加++,知道pevent实际就是 每个内容为指针的变量的地址.自加++就像数组下标自加一样.操作pevent就是选择第几个指针.
3)将pevents的值,即*pevents,即选中的地址,赋给指针变量pevent,即可通过*pevent对其进行操作.

so,
定义
目标量类型 **p;(这个目标量类型可以是struct以包含多种类型)
赋值
p=x;(x为 指针数组的 首地址.)
则:
*p=*x;(指针数组的 第一个值,为地址)
**p=A;(A为 指针数组的 第一个值所指向的 目标量)

&p: 这个指向指针数组的指针变量的地址.
&(*p)=p: 这个指针的值的地址=这个指针.
&(**p)=*p:二级指针指向的值的地址=指针的值.

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2014-12-21 17:34:00 | 显示全部楼层
也在学习UCOS2,没用它开发过产品。顶一下!

出0入0汤圆

发表于 2014-12-23 19:54:49 | 显示全部楼层
ucos还是蛮贵的

出0入0汤圆

发表于 2014-12-23 20:06:50 来自手机 | 显示全部楼层
长姿势了哈哈

出35入0汤圆

 楼主| 发表于 2014-12-28 09:30:38 | 显示全部楼层
那天看链表指针,结果当天感冒了.
晚上睡床上,那一条指针连着一个void然后又引出一条指针连到下一个void的无限循环在我脑中转了近2个小时.
根本没法停下来.

各位感冒会有此类现象吗?

出0入0汤圆

发表于 2015-1-11 14:17:50 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-1-13 21:11:23 | 显示全部楼层
我愚钝,还得多看,体味啊。

出0入0汤圆

发表于 2015-1-13 21:21:35 | 显示全部楼层
一般不多看,多看就懂了

出0入0汤圆

发表于 2015-4-10 15:51:11 | 显示全部楼层
本帖最后由 32MCU 于 2015-4-10 15:52 编辑

网上找的:对 uC/OS-II 内二维指针的研究。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-4-15 17:50:13 | 显示全部楼层
学习了,最近也在学习ucos
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 03:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表