博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数指针 回调函数
阅读量:2353 次
发布时间:2019-05-10

本文共 930 字,大约阅读时间需要 3 分钟。

      回调函数就是一个通过函数指针调用的函数。

      如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

      自我理解:回调函数就是将另一个函数作为参数传入函数内部进行计算。将函数作为参数传入,是通过函数指针来实现的。

      函数指针与普通类型指针的共性与区别:函数指针的本质在于其是一个指针,所以和普通类型指针一样,名称前需要加*;不同的是函数指针需要有参数列表,但是与正常函数定义的区别是,其只有声明没有实现。

      函数指针:

#include
using namespace std;int sum(int a, int b){ return (a + b);}int main(){ int a = 3; int b = 1; int(*myfun)(int a,int b); //定义函数指针 myfun = sum; //给函数指针赋值 cout << myfun(a, b) << endl; system("pause"); return 0;}

      回调函数:

#include
using namespace std;int sum(int a, int b){ return (a + b);}int dif(int a, int b){ return (a - b);}int myfun(int a,int b,int (*fun)(int,int)) //回调函数,就是通过函数指针实现的;函数指针后面的参数列表仅仅是表明形式,参数并不在调用的时候传入{ return (*fun)(a,b);}int main(){ int a = 3; int b = 1; cout << myfun(a,b,sum) << endl; //注意函数指针后面的参数列表仅仅是表明形式,参数并不在调用的时候传入 cout << myfun(a,b,dif) << endl; system("pause"); return 0;}

转载地址:http://pxwtb.baihongyu.com/

你可能感兴趣的文章
如何在linux CentOS 上安装chrome 谷歌浏览器
查看>>
laravel5 怎么实现事务
查看>>
GitLab安装说明
查看>>
Git查看、删除、重命名远程分支和tag
查看>>
PHP类中的抽象类,抽象方法,abstract
查看>>
PHP接口类interface的正确使用方法
查看>>
Sencha Touch之Hello World
查看>>
Tab Layout 之单个Activity实现
查看>>
Tab Layout 之多个Activity实现
查看>>
FrameLayout之我见
查看>>
个人解读Activity之一
查看>>
实现自定义布局的Notification
查看>>
AlarmManager的学习与实现
查看>>
解读Content Provider之一
查看>>
解读Content Provider之二
查看>>
自定义UI实例
查看>>
推荐一个不错的自定义UI
查看>>
fedora16 设置 gedit软件的默认编码
查看>>
S3C6410 存储器映射
查看>>
Linux 3.3.0移植到S3C6410开发板上之一
查看>>