0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解回调函数的概念及使用步骤

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-05-26 15:20 次阅读

回调函数的概念:

回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。

回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。同时,有一些需求必须要使用回调函数来实现。

最著名的回调函数调用有C/C++标准库stdlib.h/cstdlib中的快速排序函数qsort和二分查找函数bsearch中都会要求的一个与strcmp类似的参数,用于设置数据的比较方法。

回调函数的使用步骤:

⑴定义一个回调函数;

⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;

⑶当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。

回调函数中没有参数的使用方法,如下代码:

#include

int Callback_1() // Callback Function 1
{
    printf("Hello, this is Callback_1 ");
    return 0;
}

int Callback_2() // Callback Function 2
{
    printf("Hello, this is Callback_2 ");
    return 0;
}

int Callback_3() // Callback Function 3
{
    printf("Hello, this is Callback_3 ");
    return 0;
}

int Handle(int (*Callback)())  //定义回调函数体
{
    printf("Entering Handle Function. ");
    Callback();
    printf("Leaving Handle Function. ");
}

int main()
{
    printf("Entering Main Function. ");
    Handle(Callback_1);
    Handle(Callback_2);
    Handle(Callback_3);
    printf("Leaving Main Function. ");
    return 0;
}

d当我们回调的函数带参数时,需要做如下的调整:

#include

int Callback_1(int x) // Callback Function 1
{
    printf("Hello, this is Callback_1: x = %d ", x);
    return 0;
}

int Callback_2(int x) // Callback Function 2
{
    printf("Hello, this is Callback_2: x = %d ", x);
    return 0;
}

int Callback_3(int x) // Callback Function 3
{
    printf("Hello, this is Callback_3: x = %d ", x);
    return 0;
}

int Handle(int y, int (*Callback)(int))   //注意差异
{
    printf("Entering Handle Function. ");
    Callback(y);
    printf("Leaving Handle Function. ");
}

int main()
{
    int a = 2;
    int b = 4;
    int c = 6;
    printf("Entering Main Function. ");
    Handle(a, Callback_1);
    Handle(b, Callback_2);
    Handle(c, Callback_3);
    printf("Leaving Main Function. ");
    return 0;
}
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7598

    浏览量

    136170
  • 编程语言
    +关注

    关注

    10

    文章

    1938

    浏览量

    34593
  • 回调函数
    +关注

    关注

    0

    文章

    87

    浏览量

    11543
收藏 人收藏

    评论

    相关推荐

    一文详解C语言函数指针与函数

    在讲函数之前,我们需要了解函数指针。
    发表于 10-19 09:34 775次阅读

    C语言里面的函数指针和函数

    在讲函数之前,我们需要了解函数指针。
    发表于 12-13 10:28 585次阅读

    C 语言函数详解

    C 语言函数详解什么是函数
    发表于 04-08 10:36

    C语言函数学习

    对指针的应用是C语言编程的精髓所在,而回函数就是C语言里面对函数指针的高级应用。简而言之,函数
    发表于 05-27 09:44 7195次阅读

    LabWindows/CVI 程序 函数设计

    函数是系统框架设计中非常重要的一种手段,所谓函数(callback )是指一个通过
    发表于 05-03 16:54 1.1w次阅读
    LabWindows/CVI 程序 <b class='flag-5'>回</b><b class='flag-5'>调</b><b class='flag-5'>函数</b>设计

    函数的详细资料说明

    异步事件的处理,首先将异步事件发生时需要执行的代码编写成一个函数,并将该函数注册成为函数,这样当该异步事件发生时,系统会自动调用事先注册
    发表于 02-28 08:00 6次下载
    <b class='flag-5'>回</b><b class='flag-5'>调</b><b class='flag-5'>函数</b>的详细资料说明

    C语言函数函数

    来源:嵌入式客栈 1 什么是函数?首先什么是呢? 我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被
    的头像 发表于 09-11 09:57 4098次阅读

    c语言函数的使用及实际作用详解

    大家好,我是无际。今天给大家讲一下芯片/模块厂家写SDK必须会使用的一种技术:函数函数
    发表于 11-20 19:51 13次下载
    c语言<b class='flag-5'>回</b><b class='flag-5'>调</b><b class='flag-5'>函数</b>的使用及实际作用<b class='flag-5'>详解</b>

    智能电网的概念及通信技术详解

    智能电网的概念及通信技术详解
    发表于 11-21 20:41 1194次阅读

    一文详解C/C++函数

    首先看一下函数的官方解释:函数就是一个通过函数
    的头像 发表于 02-12 09:20 1510次阅读

    函数指针和函数的使用方法

    了解开发语言的朋友应该都会对函数有所了解,在很多的程序开发语言中都能看到的身影。很多场景下,当某个条件成立以后我们希望代码执行某些指
    的头像 发表于 04-10 15:08 1063次阅读

    C语言技巧之函数

    在讲函数之前,我们需要了解函数指针。
    的头像 发表于 04-18 11:50 744次阅读

    C语言|函数的不同用法

    函数是个高级操作技巧,也是日常项目中常常使用到的技能。之所以说函数是个高级操作技巧,是因
    发表于 07-10 10:34 1259次阅读

    应用笔记 | 浅谈STM32库里的函数

    关键字:函数,HAL库   目录预览 1.函数 2.STM32固件库里的
    的头像 发表于 09-14 17:10 3466次阅读
    应用笔记 | 浅谈STM32库里的<b class='flag-5'>回</b><b class='flag-5'>调</b><b class='flag-5'>函数</b>

    函数(callback)是什么?函数的实现方法

    函数是一种特殊的函数,它作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。
    发表于 03-12 11:46 2715次阅读