亲爱的大家, 我有一个 C++ 程序应该尽可能快。 特别是,有一个关键部分的工作原理如下:
有一个变量D,范围在[0,255],基于它的值 它调用其指针存储在数组 F(具有 255 个元素)中的函数。 即,F[D] 给出了指向要调用的函数的指针。 这些函数非常简单,它们执行很少的表达式或/和赋值(没有循环)。
我怎样才能更快地做到这一点?
我可以复制函数中的代码。我不需要函数调用的特性(我正在使用它们,因为它更简单)。 我的目标是消除因调用函数而导致的低效率。
我考虑使用 Switch/case。 每个case的代码就是对应函数的代码。 有更快的方法吗?
最佳答案
switch/case 可能更快,因为编译器可以进行更具体的优化,并且与调用函数指针相比,还有代码局部性等其他因素。但是,您不太可能会注意到性能大幅提升。
关于c++ - C/C++ 更快地调用函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482519/