文章目录
链表
rt-thread中的链表,不管是rt_list_t还是rt_slist_t的节点都没有数据域(其实也有,只是跟节点强关联了,可以通过节点指针找到数据域),只有当前节点的关联节点的指针,这样做的好处是节点的删除非常方便。但是我在系统应用使用过程中发现了一个不方便的地方,如果某一数据对象类型的定义里面如果只声明了一个rt_list_t或rt_slist_t节点对象,那么该数据对象只能同时在一个链表里面使用,因为插入或删除可能会改变该节点的临近节点,从而影响到所有引用该数据对象的链表。 但是也有一种办法可以解决,即有多少个链表使用该对象,就在对象中定义几个list字段,从而避免上述问题。 不过有时候几个list字段,会影响到维护性,总感觉扩展性不是很好,我现在都是用的自己写的list,list 的node中放一个void *类型,每个list node中都是相关数据对象的拷贝,互不影响。
持续更新……