当前位置:C++技术网 > 资讯 > 函数单入口的研究和实现方法

函数单入口的研究和实现方法

更新时间:2018-06-28 09:01:57浏览次数:1+次

    正式项目要求单入口,单出口。可是写起来需要多入口,实际上确实是单入口,单出口。实现方法举例说明。

    void func(void* v1, void* v2, void* v3, void* v4, void* v5)

    {

    对 v5 进行处理;

    void func(v1, v2, v3, v4);

    }

    

    void func(void* v1, void* v2, void* v3, void* v4)

    {

    对 v4 进行处理;

    void func(v1, v2, v3);

    }

    

    void func(void* v1, void* v2, void* v3)

    {

    对 v3 进行处理;

    void func(v1, v2);

    }

    

    void func(void* v1, void* v2)

    {

    对 v1, v2 进行处理;

    }

    这样,不论调用它们中的哪一个,实际上最终都是调用 func(void* v1, void* v2),实现了单入口。

    

    然后下面这个是类似递归的方法。

    

void DealWithXX(void* v1, void* v2)

    

    {

    if (应该先处理 v1)

        DealV1(v1, v2);

    if(应该直接处理 v2)

        DealV2(v2);

    }

    

    DealV1(void* v1, void* v2)

    {   

    //处理v1

    DealV2(v2);

    }

    DealV2(void* v2)

    {

    //处理v2

    //执行处理完成事件。这事件可以由别处引入。

    }

    

    这样兼顾了DealV1, DealV2 的执行顺序,容易和其他地方共同完成一件事。也实现了单入口。不论v1, v2是何种情况都只需要调用 DealWithXX