【发布时间】:2013-05-07 19:00:36
【问题描述】:
我有两个链表:-
struct Struct_A_s {
int a;
struct Struct_A_s *next;
}Struct_A;
struct Struct_B_s {
int a;
int b;
int c;
int d;
struct Struct_B_s *next;
}Struct_B;
我已经有几个在 Struct_A 上运行的函数。 像这样的事情:
“Add_tail(Struct_A *)”、“Remove_tail(Struct_B *)”、“Add_node(Struct_A *,int pos)、Add_head等都到位了。
对我的要求是我应该修改现有的函数,以便它们可以在 Struct_A 和 Struct_B 上运行。
在 C 中,有没有一种方法可以传递 void 指针(或类似的东西)并编写一些通用代码来处理 Struct_A 和 Struct_B。 代码大小在这里是一个大问题。目前我看到的唯一选择是从头开始为 Struct_B 重写所有代码(链表操作)。
【问题讨论】:
-
这将是
struct而不是Struct。而且你在最后一个Struct_B之后缺少一个;。最好在发布到 SO 之前编译代码。 -
已根据您的 cmets 进行更正
-
@Rüppell'sVulture 这两种结构都在上面列出?我确定我的问题不取决于结构类型。
-
目标是让一个列表同时包含
Struct_A元素和Struct_B元素吗?
标签: c struct linked-list