MISRA C++:2008 Rule 6-5-1

Цикл for должен содержать один контур-счетчик, который не должен иметь плавающего типа

Описание

Определение правила

Цикл for должен содержать один контур-счетчик, который не должен иметь плавающего типа.

Реализация Polyspace

Шашка помечает такие ситуации:

  • The for индекс цикла имеет тип с плавающей точкой.

  • В for приращивается более одного счетчика цикла оператор шага цикла.

    Для образца:

    for(i=0, j=0; i<10 && j < 10;i++, j++) {}

  • Счетчик цикла не увеличивается в for оператор шага цикла.

    Для образца:

    for(i=0; i<10;) {}

    Даже если вы увеличиваете счетчик цикла в теле цикла, шашка все равно поднимает нарушение. Согласно MISRA® Спецификации C++, счетчик цикла является таким, который инициализируется в или до выражения цикла, действует как операнд к реляционному оператору в выражении цикла и изменяется в выражении цикла. Если оператор шага в выражении цикла отсутствует, чекер не может найти изменение счетчика цикла и рассматривает, как если бы счетчик цикла отсутствовал.

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

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

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

Группа: Операторы
Категория: Требуемая
Введенный в R2013b