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

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

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

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

    namespace N1
    {
      int main();
    }

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

    namespace
    {
      int main();
    }

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

    namespace N1
    {
      int start();
    }

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

MISRA-CPP-2008-7.3.2