Для моего предстоящего университетского проекта C меня просят иметь модульный код, поскольку C позволяет это. По сути, у меня будет файл .c и соответствующий файл .h для некоторой структуры данных, такой как связанный список, двоичное дерево, хеш-таблица, что угодно ...
Используя в качестве примера связанный список, у меня есть это:
typedef struct sLinkedList {
int value;
struct sLinkedList *next;
} List;
Но это заставляет value
иметь тип int
, и пользователь, использующий эту библиотеку связанного списка, будет вынужден напрямую изменить исходный код библиотеки. Я хочу избежать этого, я хочу избежать необходимости менять библиотеку, чтобы сделать код максимально модульным.
Мой проект, возможно, должен использовать связанный список для списка целых чисел или, может быть, список какой-то структуры. Но я не собираюсь дублировать библиотечные файлы / код и соответственно изменять код.
Как я могу решить это?