Количество операторов перехода

Количество операторов goto

Описание

Эта метрика измеряет количество операторов goto в функции.

Операторы break и continue не считаются.

Рекомендуемый верхний предел этой метрики 0. Для лучшей удобочитаемости вашего кода избегайте операторов goto в своем коде. Чтобы обнаружить использование операторов goto, проверяйте на нарушения MISRA C:2012 Rule 15.1.

Чтобы осуществить пределы на метриках, смотрите, Вычисляют Метрики сложности кода.

Примеры

развернуть все

#define SIZE 10
int initialize(int **arr, int loc);
void printString(char *);
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: да

Смотрите также