我总是很困惑为什么我们使用 typedef struct node 来创建节点,而只能使用 struct node 轻松实现同样的事情......
答案 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() { ... }