我们可以使用typedef struct node node;

时间:2015-06-04 14:11:10

标签: c struct typedef

typedef struct node{
    int data;
    struct node *next;
}Node;

如果我使用'node'而不是'Node'

,它会有什么不同
typedef struct node{
    int data;
    struct node *next;
}node;

2 个答案:

答案 0 :(得分:3)

结构,联合和枚举的标记名称与其他标识符(包括typedef名称)占用不同的名称空间,因此typedef struct node { ... } node;有效。

Struct和union成员名称占用另一个名称空间,因此如果不明智,以下内容是合法的:

typedef struct foo { int foo; } foo;

无法做的事情就像是

typedef struct foo {...} foo;
foo foo;

因为typedef名称和变量名称都占用相同的名称空间。

答案 1 :(得分:0)

不,这只是一个名字。但是,大多数C命名惯例都要求typedef结构大写,因此大多数人更喜欢Node