2

私は2つのリンクされたリストを持っています:-

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 のすべてのコード (リンクされたリスト操作) を最初から書き直すしかありません。

4

3 に答える 3