typedef是C语言的关键字,它的作用是是为一种数据类型定义一个新名字,主要是助记和简洁。
列一下三种用法:
(1)给void*类型定义了新名字,叫做POINT
typedef void* POINT;
那么,
POINT p;
就相当于
void* p;
(2)与结构体一起用,这相当于定义了结构体myStruct并且给它起了一个别名叫mystruct
typedef struct myStruct{
int num;
int id;
}mystruct;
那么,
如果不起别名,则需要这样定义:
struct myStruct ms;
现在可以这样用了,使用别名mystruct:
mystruct ms;
(3)给复杂的类型起一个别名,比如定义一个叫callback_f的类型,它实际是接受一个char*参数并返回int的函数指针:
typedef int (*callback_f)(char*);
这样就能使用:
callback_f f;
来声明一个函数指针f,相当于:
int (*f)(char*);
记法很简单,将要写的函数指针名字换成新名字,并在前面加上typedef就行了,比如这里直接将f换成别名callback_f再加typedef即可。
如此就可以继续赋值并使用:
int fuc(char *c){
return 0;
}
f = &func;
好了,暂时先总结到这里。