关于linux中自带led驱动框架源码中宏函数device_for_each_child_node(dev, child)的使用问题迷惑及解答

device_for_each_child_node(dev, child)当时不明白调用函数为什么是这样调用?

后来,查看了宏定义和宏函数,特别是/的使用。

先看定义实际上,`device_for_each_child_node(dev, child)`是一个宏定义,它在内核中定义如下:

#define device_for_each_child_node(dev, child) \
for (child = first_child(dev); \
child != NULL; \
child = next_child(child))

其实上面是个for循环,注意看for括号,这只是定义了for如循环,但没有定义for里面执行的逻辑,而调用此宏后的大括号就是for循坏执行的逻辑。

其中,`first_child(dev)`和`next_child(child)`是两个函数,用于获取设备`dev`的第一个子设备节点和下一个兄弟子设备节点。

所以,在这段代码中,`device_for_each_child_node(dev, child)`是用来遍历设备`dev`的子设备节点,并将每个子设备节点的指针保存到变量`child`中。具体的处理逻辑会在遍历过程中执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值