Я хотел бы создать заголовок связанных списков, который мог бы использовать в различных проектах. Одна важная функция, которая может понадобиться, заключается в том, что я могу контролировать тип связанного списка внутри моего main.c
. main.c
возможно будет выглядеть примерно так:
#include "linkedlists.h"
#define NODE_TYPE int
int main() {
/* code using linked lists of integers */
return 0;
}
В настоящее время я определяю тип внутри linkedlists.h
, а затем включаю его в main.c
, но это означает, что мне нужно изменить заголовок связанных списков для каждого проекта. Например, в моем текущем проекте у меня есть что-то вроде этого, внутри linkedlists.h
:
struct A {
char * name;
int age;
};
struct B {
char * name;
char * description;
char * schedule;
};
union node_type {
struct A a;
struct B b;
};
typedef struct node {
union node_type data;
struct node * next;
} node;
/* linked lists function declarations */
Итак, если возможно, как я могу переместить спецификацию типа списка в main.c
и сделать linkedlists.h
универсальным для списков любого типа?