typedef struct node{
int data;
struct node *next;
}Node;
如果我使用'node'而不是'Node'
,它会有什么不同typedef struct node{
int data;
struct node *next;
}node;
答案 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
。