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;
    }
  • 相关阅读:
    石家庄地铁线路查询系统(补)
    构建之法阅读笔记03
    构建之法阅读笔记02
    Day 3-3 内置方法
    Day3-2 函数之递归
    Day3-1 函数
    Day2 列表,元组,字典,集合
    Day1 基础知识
    Day1. Python基础知识
    iptables防火墙配置
  • 原文地址:https://www.cnblogs.com/winifred-tang94/p/5832654.html
Copyright © 2011-2022 走看看