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;
    }
  • 相关阅读:
    计算机专业术语中英对照
    PhpStorm如何下载github上的代码到本地
    PDO学习
    Shell中特殊的变量
    Shell中变量的使用
    修改cmd的字体
    Shell的输入输出
    Shell入门第一课
    设计模式--观察者(Observer)
    eclipse中使用git提交代码到github
  • 原文地址:https://www.cnblogs.com/winifred-tang94/p/5832654.html
Copyright © 2011-2022 走看看