C 如何在我定义的ADT中使用多种数据类型

C 如何在我定义的ADT中使用多种数据类型,c,abstract-data-type,C,Abstract Data Type,我已经定义了一个简单的C API,它管理一个数据类型的双链接列表,在头文件中定义,并与它的函数(例如:print_Data、compare等)一起使用 通过这种方式,我可以轻松地将其用于我需要的任何项目。 但是,如果我想在同一个项目中使用此ADT,但数据不同,该怎么办 ADT在其头文件中定义如下: typedef struct DoublyLinkedList_ADT *dllistptr; 在it源文件中有以下两种结构: struct DoublyLinkedListNode { d

我已经定义了一个简单的C API,它管理一个数据类型的双链接列表,在头文件中定义,并与它的函数(例如:print_Data、compare等)一起使用

通过这种方式,我可以轻松地将其用于我需要的任何项目。
但是,如果我想在同一个项目中使用此ADT,但数据不同,该怎么办

ADT在其头文件中定义如下:

typedef struct DoublyLinkedList_ADT *dllistptr;
在it源文件中有以下两种结构:

struct DoublyLinkedListNode
{
    dllnodeptr previous, next;
    Data data;
};
struct DoublyLinkedList_ADT
{
    dllnodeptr head, tail;
    int size;
};
在数据头文件中有以下内容:

typedef struct Data_type
    {
        int num;
    }Data;
这样我就可以将数据定义为我想要的任何内容

有没有办法做到这一点


我唯一想到的是复制粘贴代码,在所有“数据”引用中添加一个“\u OtherData”。但这听起来不太好

在阅读了其他一些问题之后,我发现有一个实现需要对数据进行
void*
定义,每次使用它时,我都必须转换为正确的数据类型

有更容易/更快的吗