计算C函数中所有可能的执行路径的数量

时间:2015-02-04 18:53:20

标签: c metric

我正在拼命寻找一种方法来轻松计算C函数中所有可能的执行路径的数量。

例如,对于以下函数,我希望得到3的结果(如果有可能基于'i'进入任何'if'语句的值)

void test(void)
{
   if (i>0)
     x = x + 1;
   else if (i>10)
     x = x + 2;
   else
     x = x + 3;
}

1 个答案:

答案 0 :(得分:-1)

使用逗号运算符

int test(void)
{
   int ways = 0;
   if (++ways, i>0)
     x = x + 1;
   else if (++ways, i>10)
     x = x + 2;
   else
   {
     x = x + 3;
     ++ways;
   }
   return ways;
}