我在下面有一个双重链表。考虑两个函数some_function1
和some_function2
。它们都返回指向某个节点的指针。现在,还有另一个函数do_something
可以执行(if some_condition = 1)
或(if some_condition = 0)
。如果是some_condition = 1
,那么我希望它对{strong 1>} 或some_function1
返回的最后一个节点执行某些操作,无论哪个最后由主函数调用。怎么做到这一点?感谢
编辑:我真正想要的是删除some_function1或some_function2返回的最后一个节点。
some_function2
答案 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