微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 周立功教授谈迭代器模式设计

周立功教授谈迭代器模式设计

时间:08-26 来源:周立功单片机 点击:

terator_next(iterator_if_t *p_if, iterator_t *p_iter);   // 迭代器后移函数,相当于++

14  void iterator_prev(iterator_if_t *p_if, iterator_t *p_iter);   // 迭代器前移函数,相当于-- 

这些函数的具体实现详见程序清单3.54。

程序清单3.54  迭代器接口的实现

1    #include "iterator.h"

2

3    void iterator_if_init(iterator_if_t *p_if, iterator_next_t pfn_next, iterator_prev_t pfn_prev)

4    {

5        p_if -> pfn_next = pfn_next;

6        p_if -> pfn_prev = pfn_prev;

7    }

8

9    void iterator_next(iterator_if_t *p_if, iterator_t *p_iter)

10  {

11      p_if -> pfn_next(p_iter);

12  }

13

14  void iterator_prev(iterator_if_t *p_if, iterator_t *p_iter)

15  {

16      p_if -> pfn_prev(p_iter);

17  } 

现在可以直接调用iterator_if_init()实现dlist_iterator_if_get(),详见程序清单 3.55。

程序清单 3.55 获取双向链表的迭代器接口(3)

1    void dlist_iterator_if_get(iterator_if_t *p_if)

2    {

3        iterator_if_init(p_if, __dlist_iterator_next, __dlist_iterator_prev);

4    }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top