函数指针的简化
typedef关键字的书写规则
- 用类型定义变量名
- 在定义变量名前加上typedef关键字
例如我想要把char 变成int8类型 就可以
先用类型定义变量名 char int8;
然后前面加上typedef 就变成了 typedef char int8;
那么我们就可以用int8 定义变量。
函数指针的使用形式
- 直接使用函数指针的定义式来定义函数指针变量
int square(int x)
{return x*x;
}
int (*PFUN)(int x);int main(void)
{PFUN = square;int y = (*PfUN)(2); return 0;
}
- 定义函数指针数组
int (*a[2])(int x) = {square, cube};
- 函数的形参里面有函数指针(回调函数)
int f1(int(*PFUN)(int x),int x)
{return 0;
}
- 函数的返回值含有函数指针
int (*f2(int x))(int x)
{return square;
}
- 函数的形参和函数的返回值都含有函数指针
int (*f3(int (*PFUN(int x)))(int x)
{return square;
}
使用typedef 定义函数指针变量
typedef int (*PFUN)(int x);
PFUN p1, p2 = cube;
//定义函数指针数组
PFUN a[2];
//函数的形参含有函数指针(回调函数)
int f1(PFUN p1, int x)
{return 0;
}
//函数的返回值是一个函数指针
PFUN f2(int x)
{return square;
}
//函数的返回值和函数的形参都含有函数指针
PFUN f3(PFUN p1, int x)
{return square;
}