gpt4 book ai didi

c - LinkedList、结构体包含问题

转载 作者:行者123 更新时间:2023-11-30 18:03:16 25 4
gpt4 key购买 nike

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 中定义)它提示:错误[Pe020]:标识符“list”未定义

我已按顺序将 liststructs.hlist.h 包含在 calculations.cmain.c 并希望在 calculationsmain 中使用 xs

另外:什么是更好的?要将结构体和列表操作声明在同一 header 中还是将它们分开?

最佳答案

使用#include保护措施保护您的包含文件,将liststructs.h包含在list.h中,并将这两个文件包含在计算中.h。头文件中的保护措施通常写为:

#ifndef _XXXX_H_ // XXXX = LIST, LISTSTRUCT etc
#define _XXXX_H_

// definitions for file XXXX.h

#endif /* _XXXX_H_ */

关于c - LinkedList、结构体包含问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com