typedef struct用法

来源:互联网 发布:数据接口功能 编辑:程序博客网 时间:2024/05/01 01:23

typedef struct用法

typedef struct 定义结构体的新名称。

typedef struct tagNode s1;定义 struct tagNode 新的名称为 s1

typedef struct 实际上是完成了两个操作:

    typedef struct tagNode{          int a;        char c;    }s1;

相当于执行了两个步骤:

    struct tagNode{          int a;        char c;    };    typedef struct tagNode s1;

注意:

typedef struct tagNode{ char *pItem; pNode pNext;} *pNode; 

C语言当然允许在结构中包含指向它自己的指针,我们可以在建立链表等数据结构的实现

上看到无数这样的例子,上述代码的根本问题在于typedef的应用。

根据我们上面的阐述可以知道:新结构建立的过程中遇到了pNext域的声明,类型是

pNode,要知道pNode表示的是类型的新名字,那么在类型本身还没有建立完成的时候,这

个类型的新名字也还不存在,也就是说这个时候编译器根本不认识pNode。

解决这个问题的方法有多种:

1)、typedef struct tagNode { char *pItem; struct tagNode *pNext;} *pNode; 2)、typedef struct tagNode *pNode;struct tagNode { char *pItem; pNode pNext;}; 

注意:在这个例子中,你用typedef给一个还未完全声明的类型起新名字。C语言编译器支

持这种做法。

1 0