暴力算法-----
一种解决方案是使用switch语句。许多编译器会把switch语句实现为一个跳转表(jump table),而不是一系列的if/else条件(跳转表是一个已知大小的数组,其元素由指向可执行代码的指针组成)。
当switch语句控制大量的case时尤其如此。当使用跳转表时,switch中的变量只需测试一次,即可跳转到相应case语句的代码上。
不幸的是,C语言不允许在运行时评估case语句;因此,诸如case *string之类的代码是非法的。在编译时必须知道每个case的值。此外这种短小的switch语句基本上都会被实现为一系列的if/else语句,这意味着查找文本中的每个字符仍然会被检查许多次。
本文探讨了使用跳转表(jumptable)优化大量case语句处理的方法。相较于一系列的if/else判断,switch语句通过跳转表能显著减少运行时的判断次数。然而,C语言不支持运行时评估case语句,限制了此技术的应用场景。
990

被折叠的 条评论
为什么被折叠?



