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();
    
  • 相关阅读:
    【转载】警情通报为啥一定是"蓝底白字"?
    我的英语词汇本
    【转载】随便说说字符集和编码
    JavaScript入门笔记
    JavaScript代码规范及其他注意事项
    编程的部分基础知识
    vc++ 6.0相关
    vue 定位
    mpvue 搭建命令
    uni-app 漫长学习之路
  • 原文地址:https://www.cnblogs.com/sggggr/p/15023974.html
Copyright © 2011-2022 走看看