enum state { state1, state2, state3, state4, state5 } ; enum event { event1, event2, event3, event4 } ; int f1( void *event ) ; int f2( void *event ) ; int f3( void *event ) ; #include "events.h" #include "states.h" #include "actionfsm.h" struct setable { enum event ev ; int (*pf)( void * ) ; } eTable ; struct stable { enum state st ; eTable *et ; } ssTable ; int fsm( state, event ) ;