liststructs.h:
struct _data_object {
int temp;
int interval_length;
};
typedef struct _data_object temp_data_object;
struct _list_node {
data_object *temp_data;
struct _list_node *prev;
struct _list_node *next;
};
typedef struct _list_node list_node;
struct _list {
int time;
list_node *head;
list_node *tail;
};
typedef struct _list list;
list.h:
list_node *alloc_node(int temp, int interval_length);
list_node *alloc_dummy_node(void);
list *alloc_temp_list(void);
void delete_first(list *list);
void insert_node(list *list, list_node *new_node);
void insert(list *list, int temperature, int interval);
Затем я использую это в другом файле с именем calculations.c
и в main.c
, но затем я объявляю extern list *xs;
в calculations.h
(он определен в calculations.c
), он жалуется: Error[Pe020]: identifier "list" is undefined
Я включил liststructs.h
и list.h
в этом порядке в calculations.c
и main.c
и хочу использовать xs
в calculations
и main
.
Также:Что лучше?Чтобы структуры и списки операций объявлялись в одном и том же заголовке или разделяли их?