关于回调函数

本文详细介绍了回调函数的概念,即如何通过函数指针在特定事件触发时调用所指向的函数。通过实例展示了如何定义函数指针,以及如何使用它们作为参数传递给其他函数。进一步探讨了回调函数在实际编程中的应用价值。

回调函数

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

     函数

     函数名就是指针,对于一个函数,会自动将其转换为指针。

    

#include <stdio.h>

void fun(){

}
int main(){
     printf("%p-%p-%p\n",fun,&fun,*fun);    
     return 0;    
}

  打印的结果是这三个值是一样的。 &fun是该函数的地址, 为指针类型, fun是一个函数, 会转换成其指针类型, 而对于*fun, 由于fun已经变成了指针类型, 指向这个函数, 所以*fun就是取这个地址的函数, 而又根据function-to-pointer, 该函数也转变成了一个指针, 所以以此类推, 这三个值的结果是相同的.

    所谓的回调函数,就是依赖于一个函数指针作为一个参数,通过别的函数来调用它指向的函数。

    

#include <iostream>
using namespace std;
int test1(int num){
          cout<<"This is teston function"<<endl;    
}
int test2(int num){
          cout<<"This is testtwo function"<<endl;
}
int FUN(int (*ptr)(int n),int n){
          int a = (*ptr)(n);
          return a;
}
int main(){
      FUN(test2,10);
      return 0;
}

  函数指针

     1)定义:

        函数返回类型   (*指针变量名)(参数列表);

     2)函数指针的复制

        在赋值时,可以将函数指针赋值给函数名,但是,必须是参数列表相同,返回值相同。

转载于:https://www.cnblogs.com/hengtong/p/3208852.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值