首页 > 代码库 > typedef定义函数类型或函数指针

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 =http://www.mamicode.com/ clientData;    if (fd > eventLoop->maxfd)        eventLoop->maxfd = fd;    return AE_OK;}

 

typedef定义函数类型或函数指针