本文介绍了一个typedef结构语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
typedef结构{
INT Key_value;
节点*链接;
}节点;
是上面的声明是否有效?或者我应该使用
typedef结构_node {
INT Key_value;
_node *链接;
}节点;
解决方案
不,这不是有效的(因为如果你试图编译它,你会注意到)。
的的typedef
别名没有出台,直到后的typedef
,所以你不能使用里面它本身。
第二个是无效的是(C语言), _node
不是有效的类型名称。您必须使用结构_node
的自我参照。
我倾向于使用pre-声明,并把它分解:
typedef结构节点节点;结构节点{
INT Key_Value;
节点*链接;
};
typedef struct {
int Key_value;
Node *link;
}Node;
Is the above declaration valid? or should I use
typedef struct _node{
int Key_value;
_node *link;
}Node;
解决方案
No, it's not valid (as you would have noticed if you tried to compile it).
The typedef
alias isn't introduced until the after the typedef
, so you can't use it inside itself.
The second one isn't valid either (in C), _node
is not a valid type name. You must use struct _node
for the self-reference.
I tend to use pre-declaration and split it:
typedef struct Node Node;
struct Node {
int Key_Value;
Node *link;
};
这篇关于一个typedef结构语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!