如何在某些函数返回的最后一个节点上执行操作?

时间:2017-09-02 03:46:33

标签: c linked-list doubly-linked-list

我在下面有一个双重链表。考虑两个函数some_function1some_function2。它们都返回指向某个节点的指针。现在,还有另一个函数do_something可以执行(if some_condition = 1)(if some_condition = 0)。如果是some_condition = 1,那么我希望它对{strong 1>} some_function1 返回的最后一个节点执行某些操作,无论哪个最后由主函数调用。怎么做到这一点?感谢

编辑:我真正想要的是删除some_function1或some_function2返回的最后一个节点。

some_function2

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望do_something函数使用两个函数some_function1或{之一返回的最近使用的节点执行操作{1}}。

您可以使用带有模块范围的some_function2指针来实现此目的,以缓存一个值:

static

然后在static struct Node * MRU_node; int some_function1(List L){ if (something){ //do stuff some_condition = 1; } else{ //do stuff some_condition = 0; } MRU_node = *pointer to some node // HERE return MRU_node; } 函数中添加代码以引用此缓存:

do_something