C Snippet——C语言中用回调函数模仿C#中的事件
C语言中用回调函数模仿C#中的事件
1 #include <stdio.h> 2 void (*func) (void); //定义一个函数指针func 3 4 //调用该函数相当于触发了事件。 5 //该事件触发后,会检查函数指针func是否为NULL,如果不为NULL,说明该指针已被赋值(相当于该事件被注册)。 6 //如果事件已被注册,则执行之。 7 extern void fireTheEvent() 8 { 9 if(func != NULL) 10 { 11 func(); 12 } 13 } 14 15 extern void registerTheEvent(void (*function) (void)) //为fireTheEvent事件注册监听器。 16 { 17 func = function; 18 } 19 20 extern void callBack(void) 21 { 22 printf("Hello, this is an event\n"); 23 }