我来总结一下:
1.定义新的类型,便于跨平台
typedef int INT
2.c语言中有定义结构体
typedef struct Student
{
int a;
} Stu;
但c++其实不用这么写
3.定义函数指针,方便。
typedef int (*PFUNC)(int a, int b); //定义了一个PFUNC的函数指针
如果有函数定义为int add(int a,int b);
PFUNC = &add;
PFUNC(a, b); //相当于调用add函数
4.隐藏数组的维数,也是为了代码的美观吧
typedef char[200] CHARARR;
CHARARR str; //str是个200字节大小的字符数组
我所知道的差不多就这些。
就是type和define的合称,类型定义.主要是用来定义一个类型的.简单点说
typedef unsigned int num;
这样以后使用num i=22;就相当于使用了unsigned int i=22;作用是方便程序的阅读和读写.
另外像.
typedef struct poin
{
}poin2;
这样以来,poin2和poin是一样的.而如果不加typedef那么这里的poin2就是一个poin的实例.
再有
typedef void(*fp)(int,int);
以后使用fp相当于直接定义一个没有返回值带两个int参数的函数指针.
比如
void func(int x,int y)....
fp p2=func;
而不须要
void(*p2)(int,int);
p2=func;
省了很长的申请函数指针的代表.
总归简单一句话,就是用来把复杂的定义简化.把有特性的类型定义成比较容易记的
定义类型,比如
typedef int myint
然后就可以把myint当作int用。
最普遍的用法是定义结构体类型
typedef struct Student
{
int a;
} Stu;
然后直接用Stu stu1就能定义这个结构体类型。如果普通的做法:
struct Student{
int a;
};
这样的话,必须声明其为 struct Student stu1;
然后才能把stu1当作这个结构体类型用
可以给结构体起一个别的名字
typedef struct student
{……} stu;
就是stu是student的另一个名字
可以定义结构体!