函数指针遇到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;

 

posted @ 2020-03-11 22:13  心媛意码  阅读(168)  评论(0编辑  收藏  举报