C语言回调函数的简单运用

目录
  • 一、什么是回调函数
  • 二、简单的回调函数
  • 三、带参数的回调函数

一、什么是回调函数

因为在程序中,我们有很多的库函数,我们也有很多的上层函数,为了增加程序的灵活性,我们就将一些函数指针作为参数传递到函数里面去。
说的粗糙一点,就是将一个函数作为另一个函数的函数参数。
调用回调函数我们需要一个中间函数进行过渡。
这个中间函数的参数是一个函数指针。

二、简单的回调函数

我们来写一个简单的例子,帮助我们理解:

#include <stdio.h>

/*回调函数1*/
void callBack1(void)
{
	printf("this is callback1\n");
}
/*回调函数2*/
void callBack2(void)
{
	printf("this is callback2\n");
}
/*中间函数*/
/*参数是一个函数指针*/
void calc(void (*func)())
{
	func();
}

int main()
{
	calc(callBack1);
	printf("************\n");
	calc(callBack2);

	return 0;
}

分析一下这个简单的回调函数的运用。
函数从main函数开始运行,我们将回调函数(callBack)作为一个参数传递到中间函数(calc)里面,中间函数通过函数指针的方式来接受,通过传入不同的回调函数((callBack1)、(callBack2))来执行不同的结果。

三、带参数的回调函数

上面的程序简单的说明了不带参数的回调函数,那么带参数的回调函数我们也可以依葫芦画瓢。

#include <stdio.h>

/*回调函数1*/
int  callBack1(int a,int b)
{
	printf("this multiplication:\n");
	return a * b;
}
/*回调函数2*/
int  callBack2(int a, int b)
{
	printf("this addition:\n");
	return a + b;
}
/*中间函数*/
/*参数是一个函数指针*/
int  calc(int a,int b,int (*func)())
{
	func();
}

int main()
{
	int p;
	int q;
	p = calc(20,20, callBack1);
	printf("%d\n",p);
	printf("*********\n");
	q = calc(20, 20, callBack2);
	printf("%d\n", q);

	return 0;
}

在工作中我们的回调函数肯定不会这么简单,但是回调函数的作用是不去改变底层的程序,通过获得底层的数据来得到不同的数据。这样我们的上层会有很多变化,但是我们的底层程序不会动。

到此这篇关于C语言回调函数的简单运用的文章就介绍到这了,更多相关C语言回调函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于c语言中回调函数的理解

    前言 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 这段话不是那么好理解,不同语言实现回调的方式有些许不同.其实可以这样理解,回调就是在一个函数中调用另外一个函数. 在c语言中,回调是使用函数指针来实现的. 函数指针--顾名思义,是指向一个函数的指针.通常函数指针有两个方面的用途,一个是转换表(jump table),另一个是作为参数传递给一个函数. 下面是两个函数指针的声明 int(*f)(i

  • c语言中回调函数的使用以及实际作用详析

    目录 前言 一.通过这节课程你能掌握以下知识: 二.程序架构的核心理念和需求 三.回调函数的作用 1.输出型 2.输入型 四.掌握回调函数的程序编写 总结 前言 今天给大家讲一下芯片/模块厂家写SDK必须会使用的一种技术:回调函数. 回调函数这个知识点其实并不是很难,难是难在网上很多讲解回调函数的都说的太学术化了化了,一点也不亲民. 很多人即使知道怎么写回调函数也根本就搞不懂它们在实际产品中也有什么用,什么时候用. 所以这节课呢我们会以程序架构的需求为出发点,讲解回调函数是怎么满足它这个需求的.

  • C语言中的回调函数实例

    在C语言中一般用typedef来为回调函数定义别名(参数名). 别名通过宏定义typedef来实现,不是简单的宏替换.可以用作同时声明指针型的多个对象. 比如: 复制代码 代码如下: char *pa,pb://pa是一个char型指针,但pb是一个char型字符.我们可以这样来实现typedef char* PCHAR:PCHAR pa,pb://pa和pb都是char型指针 先看一个回调函数的例子: 复制代码 代码如下: #include<stdio.h> //方法指针的格式为:int (

  • C语言回调函数的简单运用

    目录 一.什么是回调函数 二.简单的回调函数 三.带参数的回调函数 一.什么是回调函数 因为在程序中,我们有很多的库函数,我们也有很多的上层函数,为了增加程序的灵活性,我们就将一些函数指针作为参数传递到函数里面去. 说的粗糙一点,就是将一个函数作为另一个函数的函数参数. 调用回调函数我们需要一个中间函数进行过渡. 这个中间函数的参数是一个函数指针. 二.简单的回调函数 我们来写一个简单的例子,帮助我们理解: #include <stdio.h> /*回调函数1*/ void callBack1

  • C语言中回调函数的使用详情

    目录 1.程序架构 2.回调函数的作用 3.掌握回调函数的程序编写 4.回调函数在产品中的应用 下文将学习到; 程序架构的核心理念和需求 掌握回调函数的作用 掌握回调函数的程序编写 掌握回调函数在产品中的应用 1.程序架构 一个好的程序架构至少要达到以下要求: 硬件层和应用层的程序代码分开,相互之间的控制和通讯使用接口,而且不会共享的全局变量或者数组. 用专业术语描述就是可移植性.可扩展性. 在51单片机写程序时,基本上一个.c文件解决,包括寄存器配置,产品功能.到了stm32时,我们会把不同的

  • C语言技巧提升之回调函数的掌握

    目录 一.函数指针 1.概念 2.如何用函数指针调用函数 3.函数指针作为某个函数的参数 4.函数指针作为函数返回类型 5.函数指针数组 6.函数指针总结 二.回调函数 1.什么是回调函数 2.为什么要用回调函数 3.怎么使用回调函数 4.下面是一个四则运算的简单回调函数例子 5. 回调函数实例(很有用) 一.函数指针 在讲回调函数之前,我们需要了解函数指针. 我们都知道,C语言的灵魂是指针,我们经常使用整型指针,字符串指针,结构体指针等 int *p1; char *p2; STRUCT *p

  • JS回调函数的应用简单实例

    JS的回调函数很简单,看代码: 在a.js中 var myback = null; function load(obj){ myback = obj; } function save(){ // 后台请求 $.ajax.post...... // 调用回调函数 myback(); } 在b.js中进行调用 // 就是把要回调的函数当成参数传递过去! load(function(){ this.hide(); })

  • C语言中回调函数和qsort函数的用法详解

    目录 回调函数 指向函数指针数组的指针 qsort(qulick sort)-库函数 回调函数 通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数. 回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 举例: #include<stdio.h> void menu() { printf("*************************

  • 详解JavaScript的回调函数

    本文的目录: 什么是回调或高级函数 回调函数是如何实现的 实现回调函数的基本原则 回调地狱的问题和解决方案 实现自己的回调函数 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实际上是一种对象,它可以"存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值". 因为function是内置对象,我

  • C++回调函数的理解和使用教程

    一.回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 回调函数机制: 1.定义一个函数(普通函数即可): 2.将此函数的地址注册给调用者: 3.特定的事件或条件发生时,调用者使用函数指针调用回调函数. 注:为什么要特定事件或条件发生?不应该随时都可以调用回调函数吗? 以下是回调函数

  • 理解与使用JavaScript中的回调函数

    概述 在JavaScript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在JavaScript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在JavaScript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段JavaScript或者jQuery代码,但是对于许多开发者来说它任然是一

  • 一篇文章带你了解C/C++的回调函数

    目录 函数指针 概念 先来看一个Hello World程序 然后,采用函数调用的形式来实现 用函数指针的方式来实现 函数指针数组 回调函数 概念 标准Hello World程序 将它修改成函数回调样式 修改成带参的回调样式 总结 函数指针 概念 指针是一个变量,是用来指向内存地址的.一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它.函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称

随机推荐