zoukankan      html  css  js  c++  java
  • 声明一个返回特定类型函数指针的函数

    static void (* __set_malloc_handler(void (*__f)()))()
    {
    void (* __old)() = __malloc_alloc_oom_handler;
    __malloc_alloc_oom_handler = __f;
    return(__old);
    }

    理解步骤:

     一:     void(*func)();

          f是一个函数指针,指向的函数类型就是 void (*func)()

    或者说是 void  f() 总之 func指向一个无参数的函数

     二:     __set_malloc_handler(   void (*__f)()   )  这是一个整体;

    这个整体如果替换掉上部分的func 就变成了:

         void (* __set_malloc_handler(void (*__f)()))();

     三:    因此 __set_malloc_handler(   void (*__f)()   ) 这个东西在

      void (* __set_malloc_handler(void (*__f)()))();中表示一个函数指针,

    并且这个指针指向一个无参数函数。

        也就是这个东西__set_malloc_handler(   void (*__f)()   )  的返回值是一个函数指针

    四:换种写法:

          void(*ptrType)();

         ptrType __set_malloc_handler(   void (*__f)()   )();

  • 相关阅读:
    html集合
    pyautocad
    CAD 批量提取点坐标,实现坐标的快速提取
    CAD
    python模块
    set,get,setter
    1 Http的表皮
    (6)小项目------完善增删改查的操作
    SSM学习笔记(6)---拦截器
    SSM学习笔记(5)-CGLIB动态代理
  • 原文地址:https://www.cnblogs.com/infoo/p/8706336.html
Copyright © 2011-2022 走看看