在我的面试中,我被要求为一个有 100 个状态的系统实现一个状态机,其中每个状态依次有 100 个事件,我回答了以下 3 种方法:
- 如果-否则
- 开关盒
- 函数指针
If-else 显然不适合这样的状态机,因此主要比较是 switch-case 与函数指针之间的比较,这是根据我的理解进行的比较:
- 两者在速度方面几乎相同。
- Switch-case 的模块化程度低于函数指针
- 函数指针有更多的内存开销。
谁能确认一下上面的理解是否正确?
最佳答案
函数指针方法可能有一个变体:一个包含函数指针和其他信息的结构。因此,您可以让一个函数处理多种情况。
除此之外,我认为你是对的。另外,我会考虑值得考虑的内存和速度方面的开销,但希望小到最后可以忽略不计。
关于c - 采访 : function pointers vs switch case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839512/