函数指针遇到typedef
C++中有几处概念让人容易弄混,比如指针常量,常量指针;指针函数和函数指针,这些别的随笔中有过整理。
今天看下函数指针和typedef连用的情况:
typedef int* (*Fun)(int* a, int* b);
这里的Fun实际上是一个类型,该类型是一个函数指针类型,该函数指针返回值是一个int*,参数是两个指针;
为何要定义这样的类型呢?
如果没有定义上面的类型,你声明一个函数指针时,需要这样做:
int * (*fun1)(int*a , int* b);
int * (*fun2)(int*a , int* b);
这样的话,每次定义一个函数指针都需要这样麻烦的写一遍。而如果有上面的typedef的定义,则可以这样来定义:
Fun fun1;//函数指针的简洁定义
Fun fun2;
新战场:https://blog.csdn.net/Stephen___Qin