函数指针

之前经常见到这样的代码:

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);

刚才提到了回调,不得不说回调真是实际项目中最常用的方法之一,查阅了很多资料,师兄给我非常详细的讲了很久之后,我自己写了一个回调,才恍然大悟,之后写一个关于回调的知识点。
posted @ 2017-09-01 14:00  小时候挺菜  阅读(148)  评论(0编辑  收藏  举报