用C语言写一个“事件”的模拟程序

源:用C语言写一个“事件”的模拟程序

Example.c 

//定义一个函数指针
func int (*func) (void);  

//调用该函数相当于触发了事件。 
//该事件触发后,会检查函数指针func是否为NULL,如果不为NULL,说明该指针已被赋值(相当于该事件被注册)。 
//如果事件已被注册,则执行之。 
void fireTheEvent()
{
  if(func != NULL)
  {
      func();
  }
}  

void registerTheEvent(int (*function) (void))
{  //为fireTheEvent事件注册监听器。
  func = function;
}  

int callBack()
{
  printf("Hello~this is a callBack
");
}  

int main()
{
  registerTheEvent(add);//注册事件监听,回调函数为 callBack。
  fireTheEvent(); //触发事件。由于已注册过监听,所以事件一旦触发就会调用 callBack 函数.
}
原文地址:https://www.cnblogs.com/LittleTiger/p/4431706.html