What's the difference between the structure tag and what comes after the curly brace?
本问题已经有最佳答案,请猛点这里访问。
有人能给我解释一下这段代码吗?
1 2 3 4 5 6 7 8 | typedef char AirportCode[4]; typedef struct NodeTag{ AirportCode Airport; struct NodeTag *link; }Node; Node *L; |
这是我的数据结构类中的一段代码。实现这段代码是为了在LinkedList节点中保存数据。我想了解的是,nodetag通常是用来做什么的?当你想让结构保持另一个迭代,因为缺乏一个更好的词,结构本身?nodetag和花括号后面的内容有什么区别,在本例中是"node"?
你把两件事结合在一起:
(1)结构声明:
1 2 3 4 | struct NodeTag{ AirportCode Airport; struct NodeTag *link; }; |
这需要您像这样声明您的节点:
1 | struct NodeTag *nt; |
结构定义的右大括号之后的任何内容都将声明该类型的变量。
1 | struct foo {int n;} a_global_variable; |
有(2)个
1 | typedef ... Node; |
你可以简单地说:
1 | Node *n; |
但是,在结构声明中,由于