我致力于处理分层数据的数据处理。
我当前工作的最好比喻是网络处理。数据包被分层,并且每个层都通过专用功能进行单独处理。在当前层中将计算下一个调用更深层的函数。在某些情况下,调用堆栈会以再次调用先前调用的函数的方式显示递归行为(例如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次通话。
希望您能明白。效果很好,但是通过调用堆栈的潜在轨迹越复杂,维护起来就越困难。
但是,可维护性不是我最关心的问题。在这种情况下,性能就是如此。是否有其他更快,更合适的编程技术来解决此问题?