zoukankan      html  css  js  c++  java
  • 回调函数的应用误区1(原汁原味的函数指针应用)

    研究了一段时间回调函数,越看越迷惑,分析并改进了从网上看到的几篇好文,看过后有了自己的看法。我也不知道这些跌跌撞撞的认识是否符合回调的真实原理,若有大侠能帮解惑,自当感激不尽。

    下面的代码可以在Vs2008下编译并运行:

    个人观点:

    虽说代码里面到处都注解说这里是回调函数声明,那里是回调函数实现;这里是被调函数声明,那里是被调函数实现;但.....其实个人更感觉这代码更像是一篇函数指针的应用。

    跟回调函数没有太大关系,说有关系那也只是格式上的关系。

    个人总结:

    这篇文章可以让你学会函数指针的使用方法。把它当作回调函数学习入门的基础。

     #include <stdio.h>

    //回调函数声明
    typedef void (*CallBackFun)(void); // 为回调函数命名,类型命名为 CallBackFun,参数为char *p

    // 回调函数实现:Afun:格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun   
    void Afun()
    {
        printf("Afun ");
    }

    //回调函数实现:Bfun:格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
    void Bfun()
    {
        printf("Bfun ");
    }

    //被调函数:执行回调方式一:命名方式
    void call1(CallBackFun pCallBack)
    {
        printf("call1: ");
        pCallBack();
    }

    //被调函数:执行回调方式二:函数指针方式
    void call2(void(*ptr)())
    {
        printf("call2: ");
        (*ptr)();
    }


    int main()
    {
        call1(Afun);
        call1(Bfun);

        call2(Afun);
        call2(Bfun);

        return 0;
    }

  • 相关阅读:
    爬虫
    vue进级
    el-upload加header
    上传图片到服务器报错 {errMsg: "uploadFile:fail ssl hand shake error"}
    【Node.js】论一个低配版Web实时通信库是如何实现的1( WebSocket篇)
    【Node.js】 bodyparser实现原理解析
    【JavaScript】EventEmitter的前端实现
    【JavaScript】当我们尝试用JavaScipt测网速
    git命令
    【Java】利用注解和反射实现一个"低配版"的依赖注入
  • 原文地址:https://www.cnblogs.com/jacklikedogs/p/3747885.html
Copyright © 2011-2022 走看看