c - C语言的事件管理

标签 c function-pointers event-listener

如何用C实现事件监听机制,我熟悉C++和Java。我没有得到任何使用 C 的好方法。最好使用函数指针。提前致谢。

最佳答案

通常,一个好的方法是在传入事件和回调函数(函数指针)之间建立映射:例如如下所示:

static const event_handling_map_t event_handling_map[] = {
      {EVENT1,           handle_event_1},
      {EVENT2,           handle_event_2},
      {EVENT3,           handle_event_3}
  }

其中handle_event是应该处理特定事件的函数。 因此,当接收到事件时,可以使用特定的函数,例如(假设 EVENT1 定义在枚举中,并且其值为 0),将像这样调用该函数:

event_handling_map[EVENT1].handle_events_cb(args);

在本例中,handle_event_cb 将为 handle_event_1

关于c - C语言的事件管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450202/

相关文章:

c - Pthread 在 C 中意外执行

c - 函数指针,(*f)和f有什么区别

javascript - 删除 for 循环 JavaScript 中的事件监听器

c - 调用 pthread_exit() 时发生内存泄漏

c - 与字节的 boolean 运算

c++ - 函数指针失去值(value)

c - “返回”作为函数指针数组中的函数

java - 为什么我不能从事件监听器调用方法,但可以在类的其他地方调用方法?

javascript - 恢复页面内容并保留事件监听器

c - 如何在 Tizen Gear S2 本地文件系统上写入文本文件?