推荐阅读https://zhuanlan.zhihu.com/p/413574268,有详细的描述。
这里只记录自己读后的理解。
typedef就是为了定义类型的别名,比如typedef int (*pFunc) (int, char);
就是定义pFunc是一个函数指针类型,它指向的函数参数为(int, char),返回值为int;
如果想定义一组这样的函数,这组函数元素实现不同的功能,比如:typedef int (*A[10]) (int, char);
表明A是一个存放指针元素的数组类型,这个数组里的元素是指向函数,此函数参数为(int, char),返回值为int;
int func(int a, char b)
{
cout<<a<<“:”<<b<<endl;
return a;
}
int func2(int a, char b)
{
cout<<a+1<<“:”<<b<<endl;
return a;
}
typedef int (*A[10]) (int, char);
typedef int (*pFunc) (int, char);
int main()
{
pFunc f;
f = func;
f(1,'a');
A a;
a[0] = func;
a[0](1, 'b');
a[1] = func2;
a[1](1, 'b');
return 0;
}