请教:关于RT-Thread线程调度的一处代码
关于RT-Thread的线程调度,有一处代码没搞懂to_thread = rt_list_entry(rt_thread_priority_table.next,
struct rt_thread, tlist);
#define rt_list_entry(node, type, member) \
((type *)((char *)(node) - (unsigned long)(&((type *)0)->member)))
我觉得这个宏可以产生正确结果的前提应该是rt_thread_priority_table[]里的元素和rt_thread结构里的链表关联起来(即存储地址关联起来),这些我都写代码试验过。但没有发现有哪处代码作了关联。
请版主或其他高手释疑一下,谢谢。 帮顶
页:
[1]