对于我即将进行的大学 C 项目,我被要求拥有 C 允许的模块化代码。基本上,我将拥有一些数据结构的 .c 文件和相应的 .h 文件,例如链表、二叉树、哈希表等......
以链表为例,我有这样的:
typedef struct sLinkedList {
int value;
struct sLinkedList *next;
} List;
但这迫使value
成为类型int
并且使用该链表库的用户将被迫直接更改该库的源代码。我想避免这种情况,我想避免更改库的需要,使代码尽可能模块化。
我的项目可能需要使用链表来表示整数列表,或者可能是某种结构的列表。但我不会复制库文件/代码并相应地更改代码。
我该如何解决这个问题?
不幸的是,没有简单的方法可以解决这个问题。对于这种情况,最常见的纯 C 方法是使用void*
,并将值复制到您分配的内存中的指针中。但这使得使用变得棘手,并且很容易出错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)