我陷入了libev中传递论点的情况。
通常,libev可以使用 * receive_callback * 之类的函数来接收软件包,这是可以的,但实际上,我们需要根据接收到的软件包 dispatch 一个相对的 * 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:
// .......
}
我的问题是,如果
write_callbackX
也必须读取recv_buff中的特定内容,我们如何将recv_buff参数传递给callbackX?我们是否必须在这里承担全局变量的负担和丑陋? 最佳答案
作者本人回答了,但发表了评论。由于这显示为未答复,我
将他的答案发布在“答案”部分并关闭循环。不知道是否有更好的方法...随时解决此问题。
问题作者说:
关于c - Libev,如何将参数传递给相关的回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9937016/