一、typedef两种用法
1.定义已有类型的别名
typedef 类型 定义名;
栗子:
typedef char *pChar;
pChar s1, s2, s3;
注意:s1、s2、s3都被定义为char *类型.
2.创建一个新的类型
typedef 返回值类型 新类型名(参数列表);
栗子:
typedef int (*ADD)(int, int); //ADD为返回int类型的函数指针
等同:
int(*ADD)(int, int);
函数实现:
//ADD为返回int类型的函数指针,返回int类型的函数指针
ADD calc_func(int x, int y){
//return add(x + y);
}
<1>.注意:去掉typedef和别名后, 剩下的原变量的类型:
int (*)(int, int)
<2>.typedef定义了新的类型add,并定义这种类型是指向函数的指针,这个函数以一个(int,int)为参数,并返回int类型.
<3>.再如:
typedef int* (*ADD)(int, int);
注意:typedef定义了新的类型add,并定义这种类型是指向函数的指针,这个函数以一个(int,int)为参数,并返回init*类型.
//ADD为返回int类型的函数指针,返回int*类型的函数指针
ADD calc_func(int x, int y){
//return add(x + y);
}