Guest User

Untitled

a guest
Jun 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. typedef event_handler_t (*event_handler_t)(event_t*); // compilation error
  2.  
  3. event_handler_t state2(event_t* e);
  4. event_handler_t state1(event_t* e) {
  5. switch(e->type) {
  6. //...
  7. case SOME_EVENT:
  8. return state2;
  9. //...
  10. }
  11.  
  12. }
  13. event_handler_t state2(event_t* e) {
  14. switch(e->type) {
  15. //...
  16. case OTHER_EVENT:
  17. return state1;
  18. //...
  19. }
  20. }
  21.  
  22. //...
  23. event_handler_t event_handler;
  24. //...
  25. event_handler(&e);
  26. //...
  27.  
  28. typedef struct event_handler {
  29. struct event_handler (*func)(event_t *);
  30. } event_handler_t;
  31.  
  32. event_handler_t state2(event_t* e) {
  33. {
  34. event_handler_t next_handler = {NULL};
  35. switch(e->type) {
  36. //...
  37. case OTHER_EVENT:
  38. next_handler.func = state1;
  39. break;
  40. //...
  41. }
  42. return next_handler;
  43. }
Add Comment
Please, Sign In to add comment