您的位置:控制工程论坛网论坛 » 教程与手册 » 软件编程经典培训实例 13、注意多出口函数的处理

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2025年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

软件编程经典培训实例 13、注意多出口函数的处理

xilinxue  发表于 2008/11/7 13:18:48      952 查看 0 回复  [上一主题]  [下一主题]

手机阅读

摘            要:如果函数存在多个出口,应注意函数对各个出口的处理。
       问题描述:根据函数功能的需求,被测函数在函数体开始时保存了当前系统任务模式,并设置新的任务模式为不可抢占模式,在函数返回时应该恢复任务的旧模式,否则会影响整个系统功能的实现。可是问题就出在这里。由于函数有复杂的分支结构,有多个出口,有的出口对任务模式进行了恢复,有的出口没有恢复,这样就可能导致函数返回后系统任务模式被改变的问题。
        问题分析:此问题出现的原因在于函数有多个出口,而程序员往往注重各个分支功能的实现的细节,而忽视了或者是忘记了在函数出口应做的收尾工作。这就象打一场战争一样,战争胜利了,还要打扫战场,开总结大会,否则就会象李自成一样,仗打完了就开始享受了,最后前功尽弃。毛主席说得好:“宜将剩勇追穷寇,不可沽名学霸王”。所以,函数出口的处理应充分重视。
        案例意义:这类问题很常见,对于有多个出口的函数,测试时应充分构造测试例,采用分支覆盖的测试方法对函数各个出口的环境恢复、资源释放情况进行观察。对于编程人员来说,如果使函数有统一出口,可有效避免或减少类似问题。
1楼 0 0 回复