Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V2516. MISRA. The 'if' ... 'else if'...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2516. MISRA. The 'if' ... 'else if' construct should be terminated with an 'else' statement.

19 Ноя 2018

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

Каждая последовательность 'if ... else if' должна заканчиваться 'else'. При отсутствии завершающего 'else' анализатор выдаст предупреждение. Наличие конечного 'else' показывает, что рассмотрены все возможные варианты, что помогает при чтении и понимании кода.

Пример кода, на который анализатор выдаст предупреждение:

if (condition)
{
  ....
}
else if (other_condition)
{
  ....
}

Чтобы анализатор не выдавал предупреждение, а разработчик, читающий код, сразу понял, что рассмотрен случай, когда ни одно условие не выполнилось, стоит добавить 'else'-ветвь. В этой ветви следует разместить необходимые действия или поясняющий комментарий.

if (condition)
{
  ....
}
else if (other_condition)
{
  ....
}
else
{
  // No action needed
}

Данная диагностика классифицируется как:

  • MISRA-C-15.7
  • MISRA-CPP-6.4.2