我在看一段程序时,看到这样的结构体:
typedef struct entry_str{
struct entry_str xdata *next;
char text[33];
}entry;
我想请教的是:1、到底entry_str和entry哪个是typedef定义的类型名?我记得typedef不可以定义变量,那entry是什么? entry_str又是什么?
2、“struct entry_str xdata *next”中“struct entry_str”怎么又出现在结构体成员中?
这是C语言的基本语法
entry 等于 struct entry_str
可以那样定义的
typedef是用户数据库类型定义关键字
它允许程序员自己定义一种新的数据类型
这个主要用在增加代码的可读性和编码方便上
typedef struct entry_str{
struct entry_str xdata *next;
char text[33];
}entry;
可以等同于:
struct entry_str{
struct entry_str xdata *next;
char text[33];
};
typedef struct entry_str entry;
entry_str又是什么?
这个是结构类型的名字,但是,你在定义新的变量时,必须告诉编译器它是一个结构,所以就有了":
struct entry_str +变量名的语法
我记得typedef不可以定义变量,那entry是什么?
entry是用户定义的数据类型,通过typedef,编译器已经知道entry 就是struct entry_str
2、“struct entry_str xdata *next”中“struct entry_str”怎么又出现在结构体成员中?
编码的家伙可能吃饱了撑着了,故意胡弄你.要么就是它忘了自己typedef过...
这个也有可能属于在设计的时候,文档不全造成编码人员的误解
一直不明白定义结构时同时用typedef定义别名有什么意义
2、“struct entry_str xdata *next”中“struct entry_str”怎么又出现在结构体成员中?
---------------
这是个指针啊,典型的链结构............