typedef定义函数类型或函数指针
Posted winifredhpcl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; }
以上是关于typedef定义函数类型或函数指针的主要内容,如果未能解决你的问题,请参考以下文章