use*_*724 7 c function-pointers state-machine switch-statement
在我的访谈中,我被要求为具有100个状态的系统实现状态机,其中每个状态又有100个事件,我回答了以下三种方法:
If-else显然不适合这样的状态机,因此主要的比较是在switch-case与函数指针之间,这里是根据我的理解进行的比较:
有人可以确认上述理解是否正确?
函数指针方法可能有一种变体:包含函数指针以及其他信息的结构。所以你可以让一个函数处理多种情况。
除此之外,我认为你是对的。另外,我认为有关内存和速度的开销值得考虑,但希望足够小,最终可以被忽略。