请教两句程序,关于typedef

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:52:28
typedef CArray<SGroupItem*, SGroupItem*> CGroupArray;
CGroupArray g_arrGroup;
其中SGroupItem是数据结构,有没有typedef会有什么影响?为什么要用typedef呢?
好像有的话CGroupArray是类型,没有的话是变量,是这样吗?
请教大家,谢谢!!!

SGroupItem是数据结构名吧。
那就举更简单的列子吧
比如
struct node
{
int a;
struct node * next;
}
很常见的链表节点类型
那么定义一个结构体变量 应该是:struct node p; p就一个结构体变量了
如你所说如果定义成
typedef struct node p;
那么p就是一个数据类型了,即你定义的那个结构体类型。
用了typedef的话 以后你定义相应类型的变量时就可以这样定义 p q;
这里q 就一个结构体变量了 是不是很简单呢
当然为了避免混淆,你新定义的数据类型(本列中的p)最好见名知义。

1
typedef CArray<SGroupItem*, SGroupItem*> CGroupArray;
是在以后的使用中可以用CGroupArray代替CArray<SGroupItem*, SGroupItem*>工作,比如可以定义:
CGroupArray k;
CArray<SGroupItem*, SGroupItem*> k;
同。
2
CArray<SGroupItem*, SGroupItem*> CGroupArray;
是定义一个CArray<SGroupItem*, SGroupItem*>型的变量CGroupArray;
就如int i;
定义一个int型的变量i.