主要内容

Goto 语句数

goto 语句数目

描述

此度量会测量函数中的 goto 语句数目。

breakcontinue 语句不算在内。

此度量的建议上限为 0。为提高代码的可读性,请避免在代码中使用 goto 语句。要检测 goto 语句的使用,请检查是否违反 MISRA C:2012 Rule 15.1

要对度量强制应用某些限制,请参阅使用 Polyspace 计算代码复杂度度量

示例

全部展开

#define SIZE 10
int initialize(int **arr, int loc);
void printString(int *);
void printErrorMessage(void);
void printExecutionMessage(void);


int main()
{
    int *arrayOfStrings[SIZE],len[SIZE],i;
    for ( i = 0; i < SIZE; i++ )
    {
        len[i] = initialize(arrayOfStrings,i);
    }

    for ( i = 0; i < SIZE; i++ )
    {
        if(len[i] == 0)
            goto emptyString;
        else
            goto nonEmptyString;
        loop: printExecutionMessage();
    }

emptyString:
    printErrorMessage();
    goto loop;
nonEmptyString:
    printString(arrayOfStrings[i]);
    goto loop;
}

在此示例中,函数 main 有 4 个 goto 语句。

度量信息

:函数
缩写GOTO
HIS 度量:是