Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数据结构:回调函数

数据结构:回调函数

作者头像
Gabriel
发布于 2022-11-15 05:54:52
发布于 2022-11-15 05:54:52
26700
代码可运行
举报
文章被收录于专栏:C/C++C/C++
运行总次数:0
代码可运行

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

源码: main.c

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include "callback.h"
void say_hello(void *str)
{
     printf("Hello %s\n", (const char *)str);
}

void count_numbers(void *num)
{
     int i;
     for(i=1; i<=(int)num; i++)
	  printf("%d ", i);
     putchar('\n');
}

int main(void)
{
     repeat_three_times(say_hello, "Guys");
     repeat_three_times(count_numbers, (void *)4);
     return 0;
}

callback.h

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef void (*callback_t)(void *);

void repeat_three_times(callback_t f, void *para);

callback.c

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "callback.h"

void repeat_three_times(callback_t f, void *para)
{
     f(para);
     f(para);
     f(para);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c++回调函数详解及实现(lambda)
用于解耦,可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的函数的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。
杨永贞
2022/09/23
2.7K0
c++回调函数详解及实现(lambda)
Linux小程序 —— 进度条
前言:经过这么多天的学习,想必大家学到了很多Linux知识,今天我们来用Linux来实现我们的第一个小程序 — — 进度条
Eternity._
2024/06/14
1430
Linux小程序 —— 进度条
Python 调用 C 动态链接库,包括结构体参数、回调函数等
项目中要对一个用 C 编写的 .so 库进行逻辑自测。这项工作,考虑到灵活性,我首先考虑用 Python 来完成。
amc
2018/06/18
4.9K0
[C语言日寄] 指针进阶:回调函数
在C语言的世界里,函数指针是一种强大且灵活的工具,它允许我们将函数像变量一样传递和使用。回调函数是函数指针的一种典型应用,它在程序设计中扮演着重要的角色。通过回调函数,我们可以实现模块化编程、事件驱动机制以及动态行为控制等功能。今天,我们就通过一个简单的程序来深入探讨函数指针和回调函数的使用,以及它们在C语言中的重要性。
siy2333
2025/02/23
860
c语言从入门到实战——回调函数与qsort的讲解和模拟实现
回调函数是一个函数,它作为参数传递给另一个函数,并且能够在该函数内部被调用。在C语言中,回调函数通常被用于实现事件处理和排序算法中。
鲜于言悠
2024/03/20
1420
c语言从入门到实战——回调函数与qsort的讲解和模拟实现
C语言回调函数,提升C技巧必备
“函数返回值类型”表示该指针变量可以指向具有什么返回值类型的函数;“函数参数列表”表示该指针变量可以指向具有什么参数列表的函数。这个参数列表中只需要写函数的参数类型即可。
混说Linux
2023/02/24
1.1K0
C语言回调函数,提升C技巧必备
回调函数究竟有什么作用??
函数指针:其本质是一个指针变量,该指针指向这个函数。简单来说,函数指针就是指向函数的指针。
Rice加饭
2022/05/10
7560
回调函数究竟有什么作用??
深入浅出剖析C语言函数指针与回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
杨源鑫
2019/07/04
2.3K0
深入浅出剖析C语言函数指针与回调函数
C/C++开发基础——函数指针&回调函数
与数组类似,函数在内存中也有地址,函数在内存中的地址是其机器语言代码的开始位置,而函数指针则存储函数的内存地址作为变量。函数指针可以被当作一个值赋给另一个变量,也可以作为实参传递给其他函数,或者作为其他函数的返回结果。通过传递不同的函数给函数指针,可以让一个函数在不同的时间分别调用不同实现的其他函数,这些函数都有一个共同特点,那就是它们的返回值类型还有参数的类型和个数必须相同,这个类似于int类型的指针只能指向包含int值的位置。
Coder-ZZ
2023/02/23
6510
C/C++开发基础——函数指针&回调函数
回调函数
函数指针做函数参数是C语言中非常重要的一种语法,函数指针约定了函数的返回值和函数参数,功能开发者只要根据这个约定实现功能函数,就可以通过以函数指针为参数的统一接口进行调用,来使用这个函数的功能,实现了功能开发与功能使用的解耦合。
mindtechnist
2024/08/08
1530
回调函数
Linux自动化构建工具——make和Makefile使用详解
        我们首先需要知道的是,make是一个命令,Makefile是一个文件,Makefile中包含了依赖关系和依赖方法。
用户10923276
2024/03/28
7780
Linux自动化构建工具——make和Makefile使用详解
还不懂函数回调机制,看这篇就够了
友情提示:原理介绍部分摘自:https://www.jianshu.com/p/2f695d6fd64f
用户8913398
2021/12/18
3.5K0
还不懂函数回调机制,看这篇就够了
指针函数和函数指针「建议收藏」
指针函数和函数指针是C语言里两个比较绕的概念。但是不仅面试题爱考,实际应用中也比较广泛。很多人因为搞不清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、函数指针、函数指针变量、函数指针数组放在一块的时候,能把强迫症的人活活逼疯。 其实如果理解了这些概念的本质,是不需要死记硬背的,理解起来也比较容易。
全栈程序员站长
2022/06/25
5340
指针函数和函数指针「建议收藏」
2019-04-08 Swig java Jni开发指南
简介: JNI:Java Native Interface,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。 JNA:Java Native Access是一个开源的Java框架,是Sun公司推出的一种调用本地方法的技术,是建立在经典的JNI基础之上的一个框架。之所以说它是JNI的替 代者,是因为JNA大大简化了调用本地方法的过程,使用很方便,基本上不需要脱离Java环境就可以完成。 Swig可以根据c或c++代码生成jni代码的工具,大大简化jni的开发 Jnaerator可以根据c或c++代码生成jna代码的工具,大大简化jna的开发 从难易度看,使用jnaerator开发jna最简单,代码基本都是自动生成,但是jna开发有个很大的缺点,就是如果c代码过于复杂,比如出现java调用c,然后c再回调java,java返回的结果c还需要继续处理的时候,经常出现不可控制的crash,而jna算是中间层,这个层出现的错误完全无法调试,被逼无奈,我们的项目先用jna开发,不得不转jni开发,在使用swig的过程中,也遇到不少问题,因此总结如下:
oracle3
2022/05/13
6530
C/C++:函数指针
我们之前学过各种各样指针,今天我们来讨论一下函数指针 我们先分析C和C++不同定义函数指针的方式,然后进一步探讨函数指针的应用。
破晓的历程
2024/09/05
1020
【Linux】实现进度条小程序
在之前已经了解了 【Linux】vim的使用和 【Linux】编译器-gcc/g++使用还有 【Linux】自动化构建工具-make/Makefile,有了这些工具,这次来实现一个进度条小程序。
zxctscl
2024/03/22
1950
【Linux】实现进度条小程序
C语言进阶-回调函数
目录 前言 回调函数 回调型计算器 回调冒泡排序(模拟qsort库函数) qsort函数原型 compar参数 代码演示  冒泡排序(bubble_sort) ---- 前言 ---- 本文主要讲解 回调函数的理解 回调实现计算器 qsort各种功能的使用 冒泡排序各种功能的实现 回调函数 ---- 定义 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针(地址)作为参数传递给另一 个函数, 当这个指针被用来调用其所指向的函数时,我们就说这是回调函数 回调函数不是由该函数的实现
用户9645905
2022/11/30
9620
C语言进阶-回调函数
c 语言函数指针之回调函数
我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调。
C语言与CPP编程
2020/10/20
1.1K0
C语言中函数指针和回调函数的详解
函数指针:指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数。
全栈程序员站长
2022/06/25
8580
C语言中函数指针和回调函数的详解
【C语言】《回调函数》详细解析
回调函数是指一个通过函数指针调用的函数。它允许将一个函数作为参数传递给另一个函数,并在特定事件发生时执行。这种技术使得编程更加灵活,可以动态决定在何时调用哪个函数。
LuckiBit
2024/12/11
3880
相关推荐
c++回调函数详解及实现(lambda)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档