C语言 - 详解回调函数

回调函数和函数指针

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

函数指针是一个指向函数的指针。

 test( )函数,参数为无参,返回值为void。

用 pf 指针指向 test( ) 函数,pf 指针的类型是 void(* )( )。

(*pf)( ),通过pf指针调 test( ) 函数并使用。

代码执行结果如下:

回调函数例子如下:

例子一

print_hehe( )函数是回调函数,print_hehe( )函数在执行时可以调用test( )函数。代码执行的结果如下:

例子二

Add( )、Sub( )、Mul( )、Div( )是同一类型的四种函数,分别用来执行加减乘除四种操作。

calc( )是回调函数,可以将calc( )的形参设置成函数指针类型int(*pf)(int, int),用来接收Add( )、Sub( )、Mul( )、Div( )这四种函数。

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
回调函数是一种在编程中常见的概念,尤其在C语言中经常使用。回调函数是指一个函数作为参数传递给另一个函数,并由另一个函数在合适的时间调用。 在C语言中,回调函数通常通过函数指针实现。具体步骤如下: 1. 首先定义一个函数指针类型,该函数指针类型与回调函数的参数和返回值类型相匹配。例如,如果回调函数接受一个整数参数并返回一个整数,则可以定义一个函数指针类型如下: ```c typedef int (*CallbackFunc)(int); ``` 2. 然后,在需要使用回调函数的地方,将回调函数作为参数传递给相应的函数。例如,假设有一个函数`doSomething`需要在某个时刻调用回调函数,可以这样定义`doSomething`: ```c void doSomething(int data, CallbackFunc callback) { // 执行一些操作 int result = callback(data); // 调用回调函数 // 处理回调函数的返回值 } ``` 3. 最后,实现一个回调函数,并将其传递给`doSomething`函数。回调函数的实现可以根据具体需求而定,只要其参数和返回值类型与回调函数指针类型匹配即可。 ```c int myCallback(int data) { // 处理回调函数的逻辑 return data * 2; // 返回处理后的结果 } ``` 然后可以通过如下方式调用`doSomething`函数,并传递回调函数作为参数: ```c int main() { int data = 5; doSomething(data, myCallback); // 将回调函数作为参数传递 // 继续其他操作 return 0; } ``` 这样,在`doSomething`函数内部,通过函数指针调用回调函数,从而实现了回调机制。回调函数可以在特定的时机被调用,以实现一些定制化的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值