对于我即将进行的大学 C 项目,我被要求使用 C 允许的模块化代码。基本上,我会有一些数据结构的 .c 文件和相应的 .h 文件,比如链表、二叉树、哈希表等等......
以链表为例,我有这个:
typedef struct sLinkedList {
int value;
struct sLinkedList *next;
} List;
但这会强制value
为int
类型,并且使用此链表库的用户将被迫直接更改库的源代码。我想避免这种情况,我想避免更改库的需要,以使代码尽可能模块化。
我的项目可能需要对整数列表或某种结构的列表使用链表。但我不会复制库文件/代码并相应地更改代码。
我该如何解决这个问题?
最佳答案
不幸的是,没有简单的方法可以解决这个问题。对于这种情况,最常见的纯 C 方法是使用 void*
,并将值复制到您为指针分配的内存中。不过,这会使使用变得棘手,而且很容易出错。
关于c - C中具有动态数据类型的模块化数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365696/