Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef event_handler_t (*event_handler_t)(event_t*); // compilation error
- event_handler_t state2(event_t* e);
- event_handler_t state1(event_t* e) {
- switch(e->type) {
- //...
- case SOME_EVENT:
- return state2;
- //...
- }
- }
- event_handler_t state2(event_t* e) {
- switch(e->type) {
- //...
- case OTHER_EVENT:
- return state1;
- //...
- }
- }
- //...
- event_handler_t event_handler;
- //...
- event_handler(&e);
- //...
- typedef struct event_handler {
- struct event_handler (*func)(event_t *);
- } event_handler_t;
- event_handler_t state2(event_t* e) {
- {
- event_handler_t next_handler = {NULL};
- switch(e->type) {
- //...
- case OTHER_EVENT:
- next_handler.func = state1;
- break;
- //...
- }
- return next_handler;
- }
Add Comment
Please, Sign In to add comment