首页 > 其他分享 >回调函数4

回调函数4

时间:2022-11-16 21:44:32浏览次数:55  
标签:调用 函数 void callfuct 调用函数 回调

一、什么是回调函数

  回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。

二、回调函数详解

1、C语言中的回调函数

  回调函数主要结构有三部分组成:主函数、调用函数和被调函数。C语言中,被调函数通常以函数指针(指向对应函数的入口地址)的形式出现。

//定义回调函数
void PrintfText() 
{
    printf("Hello World!\n");
}

//定义实现回调函数的"调用函数"
// 参数为函数指针,无参数返回void
void CallPrintfText(void (*callfuct)())
{
    callfuct();
}

//实现函数回调
int main(int argc,char* argv[])
{
    CallPrintfText(PrintfText);
    return 0;
}

  调用函数向其函数中传递void (*callfuct)(void)这是一个void callfuct(void)函数的入口地址,即PC指针可以通过移动到该地址执行void callfuct(void)函数。
  实现函数调用中,函数调用了“调用函数”,再在其中进一步调用被“调用函数”。相比于主函数直接调用“被调函数”,这种方法为使用者,而不是开发者提供了灵活的接口。另外,函数入口可以像变量一样设定同样为开发者提供了灵活性。

标签:调用,函数,void,callfuct,调用函数,回调
From: https://www.cnblogs.com/amxiang/p/16897616.html

相关文章

  • go语言的内外函数(闭包结构)
    packagemainimport"fmt"/*一个外层函数中,有内层函数,该函数中,会操作外层函数的局部变量并且该外层函数的返回值就是这个内层函数这个内层函数和外层函数的局部变量,统称为......
  • C++走向远洋——34(友元函数,成员函数和一般函数的区别)
    */*Copyright(c)2016,烟台大学计算机与控制工程学院*Allrightsreserved.*文件名:youyuan.cpp*作者:常轩*微信公众号:Worldhello*完成日期:2016年4月10日*版本......
  • 内联函数inline
    先说自己的理解:内联函数就是函数形式的宏定义使用#define宏定义时,语句的规范并没有得到及时调试,有时候错在哪里都不知道,当宏定义的行数多了起来时,这种影响更加显著,所以采......
  • postgresql函数:定期删除模式下指定天数前的表数据及分区物理表
    一、现有函数--1、现有函数调用selectods.deletePartitionIfExists('fact_ship'||'_'||to_char(CURRENT_DATE-INTERVAL'2month','yyyymmdd'));--2、函数内容CREAT......
  • VBA变量和函数名拼音输入提示
    VBA代码助手下载地址全球首发!VBA变量和函数名拼音输入提示!一直想做这个功能,从构想到实现,遇到了太多困难,不过随着代码行号研发过程中,我的个人技术得到极大提升,这个一直......
  • [oeasy]python0015_十六进制_hexadecimal_字节形态_hex函数
    十六进制(hexadecimal)回忆上次内容上次数制可以转化bin(n)可以把数字转化为​​2进制​​binary接收一个整数(int)得到一个二进制数形式的字符串数字在计算机中是用二进......
  • 函数计算|如何使用层解决依赖包问题?
    作者:落泥在使用阿里云函数计算平台时,如果您曾经遇到过以下问题,本文应该会对您有所帮助:第三方依赖包太大,每次更新代码都非常耗时,甚至会出现超过代码包限制的情况,我该怎......
  • 虚函数详解
    1定义定义:在某​​基类​​​中声明为virtual并在一个或多个​​​派生类​​​中被重新定义的​​​成员函数​​[1]语法:virtual函数返回类型函数名(......
  • 博弈论练习4 Calendar Game(SG函数)
    题目链接在这里:D-CalendarGame_牛客竞赛博弈专题班组合游戏基本概念、对抗搜索、Bash游戏、Nim游戏习题(nowcoder.com)这题网上有关于奇偶性来找规律的做法,有点人类智慧......
  • 云小课|使用SQL加密函数实现数据列的加解密
    摘要:数据加密作为有效防止未授权访问和防护数据泄露的技术,在各种信息系统中广泛使用。作为信息系统的核心,GaussDB(DWS)数仓也提供数据加密功能,包括透明加密和使用SQL函数加......