OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4714|回复: 4

结构体的一个疑问请,教论坛大神,,,,,

[复制链接]

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
发表于 2019-11-6 16:32:28 | 显示全部楼层 |阅读模式
1金钱
从github上下载了一个程序,有点不太理解,请教大神
下面是程序:

/**
  * @brief  Stop the button work, remove the handle off work list.
  * @param  handle: target handle strcut.
  * @retval None
  */
void button_stop(struct Button* handle)
{
        struct Button** curr;
        for(curr = &head_handle; *curr; ) {
                struct Button* entry = *curr;
                if (entry == handle) {
                        *curr = entry->next;

                } else
                        curr = &entry->next;
        }
}


可以看出来是删除链表的一个节点。我不明白的是*curr = entry->next;和curr = &entry->next;不明白差别到底在哪里。求解答。



最佳答案

查看完整内容[请看2#楼]

这个很好理解啊,估计他们都没有答到你的点上去吧。 你不好理解的是他为什么要建一个二级指针和它的作用吧? 双向链表一般都有头指针指向上一个表项尾指针指向下一个表项它们分别是上一个和下一个结构体的首地址,至少有一个指向下一胩表项的指针(也就是说这个“handle”里会有两个或一个这样的指针。) 二级指针的好处就是可以方便的指向这个表项,也可以方便的指向这个表项的地址(上一个或下一个表项)操作更加的方便。 此 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-6 16:32:29 | 显示全部楼层
这个很好理解啊,估计他们都没有答到你的点上去吧。
你不好理解的是他为什么要建一个二级指针和它的作用吧?
双向链表一般都有头指针指向上一个表项尾指针指向下一个表项它们分别是上一个和下一个结构体的首地址,至少有一个指向下一胩表项的指针(也就是说这个“handle”里会有两个或一个这样的指针。)
二级指针的好处就是可以方便的指向这个表项,也可以方便的指向这个表项的地址(上一个或下一个表项)操作更加的方便。
此代码中 curr = &entry->next;  的作用是移动到下一个项 entry->next代表的是下一个项的地址。*curr表示的就是entry->next也就是下一个项。会在for循环里会判断下一个项存在不存在
*curr = entry->next;  的作用是把下一个项替换到当前位置,自然就相当于从列表中删除了。
回复

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-11-6 17:41:15 | 显示全部楼层
本帖最后由 candylife9 于 2019-11-6 17:44 编辑

虽然我很不想说这句话,但是既然你问出这样的问题,还是建议你好好学下指针吧。假设int *p ; int a = 10; 区别就是*p=100;和p=&a;的区别,只不过你这里是二级指针,本质没有区别。
回复

使用道具 举报

12

主题

146

帖子

0

精华

高级会员

Rank: 4

积分
914
金钱
914
注册时间
2018-7-18
在线时间
384 小时
发表于 2019-11-7 09:35:41 | 显示全部楼层
前面的是改指针指向地址上的值   后面是改指针指向的地址!!!
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-11-5
在线时间
4 小时
发表于 2019-11-7 09:42:30 | 显示全部楼层
wwhh 发表于 2019-11-7 09:35
前面的是改指针指向地址上的值   后面是改指针指向的地址!!!

没毛病
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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