ANSI C - 多余的结构定义?

时间:2012-08-18 17:34:00

标签: c struct

我在this .c file中看到了这段代码。

struct node {
  Item data;
  struct node *next;
};

struct stack_type {
  struct node *top;
};

创建两个结构时有什么好处?

3 个答案:

答案 0 :(得分:4)

它可以使代码更清楚地区分整个堆栈和单个节点。

答案 1 :(得分:3)

他们正在寻求实现堆栈。每个节点都包含指向下一个节点的指针,但每个节点不包含指向堆栈顶部的指针。只有堆栈结构将指针存储到堆栈顶部。如果堆栈中的每个节点都指向顶部,则每个推送或弹出都必须修改每个节点。不必要的顶部指针也会浪费内存。

答案 2 :(得分:2)

通过这种方式,他们可以突出显示在整个堆栈上工作的功能。 Prototype将期望一个struct stack_type的实例 - 你不会(据说)从堆栈中间传递struct node