c - C中具有动态数据类型的模块化数据结构

标签 c data-structures modular

对于我即将进行的大学 C 项目,我被要求使用 C 允许的模块化代码。基本上,我会有一些数据结构的 .c 文件和相应的 .h 文件,比如链表、二叉树、哈希表等等......

以链表为例,我有这个:

typedef struct sLinkedList {
    int value;
    struct sLinkedList *next;
} List;

但这会强制valueint 类型,并且使用此链表库的用户将被迫直接更改库的源代码。我想避免这种情况,我想避免更改库的需要,以使代码尽可能模块化。

我的项目可能需要对整数列表或某种结构的列表使用链表。但我不会复制库文件/代码并相应地更改代码。

我该如何解决这个问题?

最佳答案

不幸的是,没有简单的方法可以解决这个问题。对于这种情况,最常见的纯 C 方法是使用 void*,并将值复制到您为指针分配的内存中。不过,这会使使用变得棘手,而且很容易出错。

关于c - C中具有动态数据类型的模块化数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365696/

相关文章:

c - 如何向终端输出不同深浅的绿色?

c - 父字段类型不完整

c - 也许是指针问题。 Linux程序+libpcap+getopt_long()+C语言

arrays - 索引和小于 K 的网格中的点数

data-structures - 2阶B树是满二叉树吗?

c++ - C/++ 中的简单模块化指南?

C 计算txt文件一行中的字符数

c# - 维护插入顺序并允许通过其索引访问元素的集合

javascript - 将样式导入 React 组件时,如何分配基于关闭状态更新的类名?

eclipse - 使用 Java 11 在 Eclipse 中混合模块化和非模块化开发