typedef struct与struct的区别 1. 基本解释
包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
另一个是简化一些比较复杂的类型声明。
在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明:
{ char *pItem; pNode pNext; } *pNode;
{ int iNum; long lLength; } MyStruct;
{ int iNum; long lLength; };
字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。
varName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型 。
来定义变量。
现上看到无数这样的例子,上述代码的根本问题在于typedef的应用。
pNode,要知道pNode表示的是类型的新名字,那么在类型本身还没有建立完成的时候,这 个类型的新名字也还不存在,也就是说这个时候编译器根本不认识pNode。
{ char *pItem; struct tagNode *pNext; } *pNode;
struct tagNode { char *pItem; pNode pNext; };
器支持这种做法。
{ char *pItem; struct tagNode *pNext; }; typedef struct tagNode *pNode; |
文章出处:DIY部落
(http://www.diybl.com/course/3_program/c++/cppjs/20090503/166459.html)