重构深层函数调用

时间:2018-07-19 16:11:54

标签: c algorithm state-machine

我致力于处理分层数据的数据处理。

我当前工作的最好比喻是网络处理。数据包被分层,并且每个层都通过专用功能进行单独处理。在当前层中将计算下一个调用更深层的函数。在某些情况下,调用堆栈会以再次调用先前调用的函数的方式显示递归行为(例如A()-> B()-> C()-> B()-> D())。 ..)

目前,我通过以下方式进行操作:

void func_N(void)
{
    // get next layer info
    switch (next) {
    case A:
        func_A();
        break;
    case B:
        func_B();
        break;
    default:
        finalize()
    }
}

我可以保证通话链不会任意变长。有一个技术限制,尽管相当高。调用堆栈的深度取决于我们可以做一些假设的数据。我需要获取一些新的统计信息,但是最多可以进行10次通话。

希望您能明白。效果很好,但是通过调用堆栈的潜在轨迹越复杂,维护起来就越困难。

但是,可维护性不是我最关心的问题。在这种情况下,性能就是如此。是否有其他更快,更合适的编程技术来解决此问题?

0 个答案:

没有答案