请给我解释这个C代码

时间:2014-09-11 21:34:07

标签: c

typedef struct list_item {
  char *value;
  struct list_item *next;
  struct lst_item *prev;
} list_item_t;

typedef struct single_list {
  list_item_t *head;
  list_item_t *tail;
} slist_t;

void init(slist_t *list);
void add(slist_t *list, int value);

此代码位于头文件中。我需要实现一个双向链表。我目前正在处理init函数,我无法理解代码的两个typedef结构部分。有人可以给我一个关于他们到底在做什么的解释。感谢

2 个答案:

答案 0 :(得分:0)

struct关键字允许您存储多个类型数据,它是一个结构。 在该结构中,您可以找到两个具有相同数据类型的指针,这使得结构成为link list。现在,您可以将多个char *value in list_item全部链接在一起。 关键字typedef允许使用您在末尾设置的变量名称声明list_item结构,在这种情况下list_item_t

声明示例:list_item_t my_list;

代替:stuct list_item my_list;

single_list用于通过访问第一个元素或最后一个元素轻松访问list_item结构。

你编码然后调用两个你没有向我们展示的函数,但我假设他们的名字是第一个创建整个列表,第二个允许你添加一个元素到列表。

答案 1 :(得分:0)

list_item在列表中创建一个项目。我的意思是列表中的一个节点。但single_list创建一个列表。它在一个节点中有许多列表项。你可能有很多名单。 (您可以使用single_list创建多个列表,并可以使用list_items向这些列表添加多个项目。