程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> typedef定義函數類型或函數指針,typedef指針

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

編輯:C++入門知識

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 = clientData;
    if (fd > eventLoop->maxfd)
        eventLoop->maxfd = fd;
    return AE_OK;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved