根据HIS代码度量标准的C代码中的指令数

时间:2017-03-14 16:12:14

标签: c testing static-code-analysis code-metrics

根据HIS代码指标,下列函数有多少指令?

  static uint16 CalcSignalBjbCurrents()
{
   uint16 u16Current;
   if(TRUE == bCurrValid)
   {
      if()
      {
         u16Current = 2;
      }
      else if()
      {
         u16Current = 1;
      }
      else
      {
         u16Current = 123;
      }
   }
   else
   {
      u16Current = 22;
   }

   return u16Current;
}

详细说明:

我发现"声明"之间没有任何区别。和"指令"在C.我真的很感激有人可以用有效的参考来回答它。

在使用我们的内部SCA分析器检查此函数的代码度量时,与使用SourceMonitor进行检查时,我得到的指令/语句数量值不同。 我对问题的分析是SourceMonitor将复合语句(如条件树)计为多个语句,其中我们的内部脚本将整个条件树计为一条指令。

我们的脚本:指令数量 - > 8;

源监视器:Stetments数量 - > 11;

HIS代码指标: http://docplayer.net/6136232-His-source-code-metrics.html

1 个答案:

答案 0 :(得分:0)

嗯,链接文档引用了C标准,该标准将语句定义为“要执行的操作”,在涉及这些类型的分析时,坦率地可以解释。

如果我通过语法细分它,我会计算15个不同的语句产生,但这些并不一定转化为不同的动作。

我计算了4个赋值语句,分布在3个if语句中,加上return语句 - 最多可添加8个。语法发言,声明不是语句,我不计算这个总数的声明。