zoukankan      html  css  js  c++  java
  • typedef定义函数类型或函数指针

    转载请标明出处;

      最近在看redis的代码,发现了有关函数指针的部分,想把它记下来。

      在redis中有类似下面的定义,利用typedef 定义了一个新的类型,这种类型是一个函数:

    typedef void aeFileProc(struct aeEventLoop *eventLoop, int fd, void *clientData, int mask);

      然后可以用这个类型定义一个指针,这个指针指向一个函数,具体redis中使用如下(具体redis的源码解析,后面的文章中还会提到):

        aeFileProc *rfileProc;
        aeFileProc *wfileProc;
     int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask,
            aeFileProc *proc, void *clientData)
    {
        if (fd >= eventLoop->setsize) {
            errno = ERANGE;
            return AE_ERR;
        }
        aeFileEvent *fe = &eventLoop->events[fd];
    
        if (aeApiAddEvent(eventLoop, fd, mask) == -1)
            return AE_ERR;
        fe->mask |= mask;
        if (mask & AE_READABLE) fe->rfileProc = proc;
        if (mask & AE_WRITABLE) fe->wfileProc = proc;
        fe->clientData = clientData;
        if (fd > eventLoop->maxfd)
            eventLoop->maxfd = fd;
        return AE_OK;
    }
  • 相关阅读:
    汇编语言实验8
    汇编语言中的错误
    第一篇自己完成的宏汇编
    偶尔发现的一个可以理解的问题
    程序运行时的ds cs
    第一篇博客UVA201
    将Gridview数据导出到excel
    GridView 中的下载功能
    GridView 加行号
    修改DataTable中的值
  • 原文地址:https://www.cnblogs.com/winifred-tang94/p/5832654.html
Copyright © 2011-2022 走看看