typedef 的常见用法

定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,

// 和一个字符变量;

以下则可行:

typedef char* PCHAR;

PCHAR pa, pb;  

这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。

那struct LIST{

...

};

typedef struct LIST *list;

此处可类似比较来理解.



typedef int *Pint;表示的意思并不是定义一个指向int型指针,而是表示定义一种新的数据类型,这种类型是指向int型的指针

所以: Pint a; typedef
struct {...}*Pstr; 表示定义一种数据类型,该类型是指向结构体的所以下面如果有Pstr p; 则p是一个指向结构体的指针但是很显然p是悬垂指针,不能静态分配数据.所以可以动态的分配一个空间来让p有所指向C++可以这么做: p=new *pC 没有new语句,那么可以这么做: p=(Pstr)malloc(sizeof(*p));

 

posted @ 2014-04-18 22:08  xzenith  阅读(137)  评论(0编辑  收藏  举报