zoukankan      html  css  js  c++  java
  • C语言模块化

    定义模块内部函数,设置回调函数。

    /*******************************
     * client.h
     *******************************/
    typedef struct socket_client socket_client;
    
    typedef void (*socket_client_cb_t) (socket_client *c, void *udata);
    void client_set_callback(socket_client *c, socket_client_cb_t *callback);
    
    /*******************************
     * client.c 或这在初始client时,初始回调函数。
    * 主要作用: 如本模块为事务获得模块,那需要调用模块具体事件的分发处理时,调用设置的回调函数 ******************************
    */ struct socket_client { socket_client_cb_t callback;
    void *userdata; };
    socket_client *socket_client_new()
    {
    socket_client *c;
    c = (socket_client *)malloc(sizeof(socket_client));
    if(!c)
    goto fail;

    return c;
    fail:
    return NULL;
    }
    void client_set_callback(socket_client *c, socket_client_cb_t *callback, void *udata) { c->callback = callback;
    c->userdata = udata; }

    /* when client receive a message */
    void client_call(socket_client *c)
    {
    c->callback(c, c->userdata);
    }

    参考:pulseaudio源码pulsecore/socket-client.c代码

  • 相关阅读:
    SQL语句大全
    软件设计方法
    统计在线的用户
    解放web程序员的输入验证
    OUTLOOK菜单类
    在asp.net 2.0中结合母板页meta,Tiele重置
    微软自带AJAX的用法
    在asp.net 2.0中发送邮件
    js编写的语法高亮引擎
    有关模版MasterPage的问题
  • 原文地址:https://www.cnblogs.com/cfox/p/2984430.html
Copyright © 2011-2022 走看看