Правило 15.1 MISRA C:2012

Оператор перехода не должен использоваться

Описание

Управляйте определением

Оператор перехода не должен использоваться.

Объяснение

Неограниченное использование операторов goto делает программу неструктурированной и трудной понять.

Обменивайтесь сообщениями в отчете

Оператор goto не должен использоваться.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

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

void foo(void) {
    int i = 0, result = 0;

label1:
    for ( i; i < 5; i++ ) {
        if (i > 2) goto label2;     /* Non-compliant */
    }

label2: {
        result++;
        goto label1;                /* Non-compliant */
    }
}

В этом примере нарушено правило, когда операторы goto используются.

Проверяйте информацию

Группа: Поток управления
Категория: консультация
Категория AGC: консультация
Язык: C90, C99

Введенный в R2014b