歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> typedef定義函數類型或函數指針

typedef定義函數類型或函數指針

日期:2017/3/1 9:12:17   编辑:Linux編程

最近在看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;
}

Copyright © Linux教程網 All Rights Reserved