首页 > 其他分享 >回调函数(callback function)

回调函数(callback function)

时间:2023-05-06 12:44:35浏览次数:31  
标签:function 调用 函数 Callback int callback 回调

是什么

回调函数是一种特殊的函数,它不是在程序中直接调用的,而是由程序在特定事件发生时进行调用的。回调函数通常作为参数传递给其他函数,而这些函数在执行时会将回调函数作为其内部的一部分来调用。
image

为什么

  • 解耦.
    • 回调函数的好处在于它们可以让程序更加模块化和可扩展。

怎么样

例:

#include<iostream>
using namespace std;

int Callback_1(int x) // Callback Function 1
{
    cout<<"hello, this is Callback_1: x = "<<x<<endl;
    return 0;
}

int Callback_2(int x) // Callback Function 2
{
    cout<<"hello this is Callback_2: x = "<<x<<endl;
    return 0;
}

int Handle(int y, int (*Callback)(int)) //可以将函数当作参数传递, 增加一个参数y来灵活操作
{
    cout<<"entering Handle Function."<<endl;
    Callback(y);                        //调用回调函数
    cout<<"entering Handle Function."<<endl<<endl;
    return 0;
}

int main(int argc, char const *argv[]) {
    int a = 2;
    int b = 4;
    Handle(a, Callback_1);              //将函数名作为参数传递
    Handle(b, Callback_2);
    return 0;
}

image

例:
定义了一个函数指针类型

typedef REAL(*GetVertexParamOnEdge)(void*, int, int);

标签:function,调用,函数,Callback,int,callback,回调
From: https://www.cnblogs.com/Long23/p/17376886.html

相关文章

  • 函数文档
    在函数的定义中,常利用多行注释给函数写文档,称为函数文档。函数文档是一种特殊的注释,以  """  开头和结束函数作为一个对象,有一个特殊的属性__doc__(注意:doc左右两侧均为两个下画线),通过这个属性同样可以获得函数的描述文档。 定义函数有默认值,放在参数的后面......
  • thinkphp使用pgsql,提示table_msg函数缺失的解决方法
    thinkphp使用pgsql,提示table_msg函数缺失的解决方法 打开navicate,打开查询,执行下面代码就可以解决:CREATEORREPLACEFUNCTIONpgsql_type(a_typevarchar)RETURNSvarcharAS$BODY$DECLAREv_typevarchar;BEGINIFa_type='int8'THENv_type:......
  • 箭头函数
    /*this指向1.通过对象调用函数,this指向对象2.直接调用函数,this指向全局3.通过new调用函数,this指向新创建对象4.通过call,apply,bind调用函数,this指向指定数据5.dom事件函数,this指向事件源箭头函数用法  关于函数表达式,任何函数表达式都可以用箭头函数表示  如果参......
  • GetTextAsync 或 异步函数执行完毕后的处理技巧
    //方法一Task.Factory.StartNew(()=>                       {                           //inti=0;                           //varpageText=wb.GetTextAsync();         ......
  • 定楼神器中蕴含的三角函数
    前言都说数学来源于生活,又服务于生活,下面的案例就可以帮助我们理解这句话,也能摸索出高考以及模拟类考试中经常出现这样的有生活背景的数学题目,如果顺利去掉其生活背景,剩下的就是纯粹的数学模型了。典例剖析【2023年宝鸡市质检三文理第6题】我国第一高楼上海中心大厦的阻尼器减......
  • js基础--this的作用域、函数的调用与bind高阶函数
    this的作用域箭头函数也无法通过call、apply改变this箭头函数也没有arguments函数的调用并指定this使用call调用时先指定参数this,后指定实参。。apply则是数组传递实参bind高阶函数:可以创建一个新的函数并锁死this与实参......
  • 【大数据】Hive 内置函数和 UDF 讲解
    目录一、概述1)内置函数2)自定义函数(UDF)二、环境准备三、Hive内置函数1)条件判断函数1、If函数:if3、条件判断函数:CASE4、非空查找函数:COALESCE2)字符串函数1、字符串长度函数:length2、字符串截取函数:substr,substring3、字符串连接函数:concat4、去空格函数:trim5、字符串转小写函......
  • 求最大值(函数模板)
    一、问题描述:两个类如下设计:类Time有三个数据成员,hh,mm,ss,分别代表时,分和秒,并有若干构造函数和一个重载-(减号)的成员函数。类Date有三个数据成员,year,month,day分别代表年月日,并有若干构造函数和一个重载>(<)(大于号或者小于号)的成员函数。要求设计一个函数模板template<classT>Tma......
  • js基础---函数参数
    arguments:arguments不是真正的数组所以无法使用数组的方法可变参数:可变参数可以和形参配合使用,可变参数在形参后面。......
  • Prometheus之sum_over_time函数
    一、sum_over_timesum_over_time是Prometheus中用于计算指定时间段内时间序列数据的和的函数。它可以对单个时间序列或多个时间序列进行操作,并返回指定时间范围内时间序列值的总和。sum_over_time函数的语法如下:sum_over_time(rangevector-expression)其中,range指定......