函数指针、回调函数、钩子函数->浅浅的理解

函数指针:

                函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数

。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

           声明函数指针时,要参照函数指针所要指向函数的函数原型,例如:

            int f(char,double);

            int (*p)(char,double)=f;

回调函数:

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

        

             1  //2.12函数指针作参数的排序函数

            2  #include <iostream.h>

             3  #include <math.h>

             4  void swap(int *,int *);

             5  void sort(int *,int,int (*)(int,int));

             6  int less1(int,int);

             7  int greater1(int,int);

             8  int less2(int,int);

             9  int greater2(int,int);

            10  void print(int *,int);

            11 

            12  int main()

            13  {

            14      intarray[10]={15,3,-1,7,9,4,-7,433,38,9};

            15 

            16         cout<<"排升序:"<<endl;

            17         sort(array,10,less1);     这里的->less1 就是回调函数!

            18         print(array,10);

               ..................

               ..................

               ...................(省略)

钩子函数

                  钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

                  可以认为钩子函数,只是回调函数的一个特例!

           

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值