for_each_sched_entity 宏在做什么?

What is the for_each_sched_entity macro doing?

#define for_each_sched_rt_entity(rt_se) \
    for (; rt_se; rt_se = NULL)

我不熟悉这个 for 循环的实际作用。谁能解释一下?

https://elixir.bootlin.com/linux/v5.10.75/source/kernel/sched/rt.c#L621

此宏在执行完后面的指令块后将 rt_se 设置为 NULL。 这种“访问”宏的使用在内核中很常见,可以使代码更加清晰和健壮。