小编use*_*372的帖子

Libev,如何将参数传递给相关的回调

我陷入了在libev中传递争论的局面.

通常,libev在类似*receive_callback*的函数中接收包,这没关系,但实际上,我们需要根据收到的包调度相对*write_callback*来处理特定的作业.例如:

S_RECV_MSG* pstRecvMsg = (S_RECV_MSG*) recv_buff;
switch(pstRecvMsg->wMsgType) {
    case 1: 
        ev_io_init(w, write_callback1, w->fd, EV_WRITE);
        break;
    case 2:
        ev_io_init(w, write_callback2, w->fd, EV_WRITE);
        break;
    case 3:
        // .......
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果write_callbackX还必须读取recv_buff中的具体内容,我们如何将recv_buff参数传递给callbackX?我们必须承担全球变量的负担和丑陋吗?

c callback libev

23
推荐指数
1
解决办法
4063
查看次数

标签 统计

c ×1

callback ×1

libev ×1