Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2576. MISRA. The identifier 'main' should not be used for a function other than the global function 'main'.

11 Мар 2021

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

Это правило актуально только для C++. Функция 'main' должна присутствовать только в глобальном пространстве имён, чтобы разработчик точно понимал, что если она есть, то всегда является точкой входа в программу.

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

namespace N1
{
  int main();
}

Другой пример со срабатыванием анализатора:

namespace
{
  int main();
}

Код, переписанный в соответствии с правилом, может выглядеть так:

namespace N1
{
  int start();
}

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

  • MISRA-CPP-2008-Rule-7.3.2
  • MISRA-CPP-2023-Rule-6.0.4

Ты поймал бага за сек!
А мы в коде ловим их за доли секунды. Хочешь проверить?

Попробовать бесплатно