使用typedef创建节点有什么好处?

时间:2016-12-26 16:33:35

标签: c++ data-structures linked-list

我总是很困惑为什么我们使用 typedef struct node 来创建节点,而只能使用 struct node 轻松实现同样的事情......

1 个答案:

答案 0 :(得分:2)

这不是它的完成方式。

通常是

struct node { ... };

typedef struct { ... } node; 
//here node is a alias for an anonymous struct or...
typedef struct node_ { ... } node; //note the two names are different

在C ++中没有任何特别的区别:node在任何情况下都是一种类型。

但它在C中有所不同,其中 node 是类型struct node(不仅仅是 node )的标记第一种情况,只是第二种情况下的node类型

定义C和C ++必须相同的类型的库通常采用第二种形式,这样它们可以在任何其他表达式中仅提及node而不是struct node,如

node* first() { ... }

而不是

struct node* first() { ... }