主要内容

直接递归次数

函数直接调用自身的实例数

描述

此度量指定工程中的直接递归次数。

直接递归是函数在自己的主体中调用自身的递归。如果不发生间接递归,则直接递归的次数等于递归函数的次数。

此度量的建议上限为 0。为避免超出可用堆栈空间的可能性,请不要在代码中使用递归。要检测递归的使用,请检查是否存在违反 MISRA C:2012 Rule 17.2直接递归次数超过阈值的情形。

要对度量强制应用某些限制,请参阅:

示例

全部展开

int getVal(void);
int sum(int val) {
    if(val<0)
        return 0;
    else
        return (val + sum(val-1));
}

void main() {
    int count = getVal(), total;
    assert(count > 0 && count <100);
    total = sum(count);
}

在此示例中,直接递归次数为 1。

度量信息

:工程
缩写AP_CG_DIRECT_CYCLE
HIS 度量:是