函数指针
之前经常见到这样的代码:
typedef int (*Func)(int a ,int b);
一开始不知道这是什么意思,每次翻阅资料和各位大牛博客之后一目了然,但是过了一段时间又忘记了,归根结底是当时学C的时候就没有重视这基础,再加上后来练习的越来越少,更是蒙了。
于是记录在这里自己的想法,以后晚上睡前来看看,毕竟温故而知新,当然还得多加练习。
这个typedef定义的是一个函数指针,Func指针名可以指向一个二参返回int类型的函数。
最简单的,声明定义一个函数如下:
int add(int a,int b){return a+b;}
在main函数中执行如下操作:
Func fun = &add;(函数指针指向add函数地址)
接下来就可以这样用了:
int sum = fun(1,2);
输出sum值,就是3,即1与2的和。
在实践过程中,还遇到过类似如下的一个接口定义:
void setFunc(Func fun);
我遇到这种场景,Func是一个回调方法,不过同样的道理,如果我想把add函数传入上式,很简单:
setFunc(add);
刚才提到了回调,不得不说回调真是实际项目中最常用的方法之一,查阅了很多资料,师兄给我非常详细的讲了很久之后,我自己写了一个回调,才恍然大悟,之后写一个关于回调的知识点。