zoukankan      html  css  js  c++  java
  • 函数指针&回调函数Callback

    指针函数

    指针函数:一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
    声明格式:类型标识符 *函数名(参数表)

    //指针函数,其返回值是一个int类型的指针,是一个地址
    int* fun(int x,int y);
    
    
    不同写法
    int *fun(int x,int y)
    int * fun(int x,int y)
    
    eg:
    typedef struct _Data
    {
    int a;
    int b;
    }Data;
    //指针函数
    Data* f(int a,int b)
    {
    return data;
    }
    

    注意:在调用指针函数时,需要一个同类型的指针来接收其函数的返回值

    函数指针

    1>
    函数指针:是一个指针变量,该指针指向这个函数,函数指针就是,指向函数的指针。
    声明格式:类型说明符(*函数名)(参数)

    //函数指针是需要把一个函数地址赋值给它
    int (*fun) (int x,int y);
    
    fun=Function;
    

    2>
    形式:typedef 返回类型(*新类型)(参数表)

    pfun main; //定义一个void (*main)(void)
    

    PS:
    typedef:只对已有的类型进行别名定义,不产生新的类型;
    define 只是在预处理过程对代码进行简单的替换
    typedef unsigned int UINT32
    UINT32 sum;

    typedef int arr[3]; //arr 类型是int[3];(存放int型数据的数组)
    arr a; // 定义一个数组:int a[3];

    回调函数

    回调的意思就是你事先调用一下事件绑定函数并把你的函数指针告诉它,等到那个事件发生的时候就会回过头调用你的函数。这是事件驱动的基本概念。
    一种形式:

       typedef void (*funCallback)(void);   //声明
       void fun(void);                                 // 声明逻辑函数 
       funCallback  pfun  =fun;                  // 赋值                              
       pfun();         //调用
    

    另一种形式:

    //声明
    typedef struct FUN
    {
    void (*funCallback) ();
    }MY_FUN;
    extern MY_FUN myfun;
    
    void fun(void);
    //初始化
    myfun.funCallback=fun;
    
    //引用
    myfun.funCallback();
    
  • 相关阅读:
    所遇bug
    PHP后端读取文件给video标签返回视频地址
    element-ui 上传组件 自定义上传没有进度条解决方法
    PHP递归生成分类树
    Vue.js学习 — 微信公众号菜单编辑器(二)
    Vue.js学习 — 微信公众号菜单编辑器(一)
    swiper3插件无缝滚动配置
    PHP获取一周的日期
    bootstrap-select多选下拉列表插件使用小记
    html5小总结
  • 原文地址:https://www.cnblogs.com/sggggr/p/15023974.html
Copyright © 2011-2022 走看看