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

This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).

This diagnostic rule is only relevant to C++. The 'main' function should only be present in the global namespace. This way a developer will be sure - if the 'main' function appears, it is always the entry point to the program.

The analyzer issues a warning for the following code example:

    namespace N1
    {
      int main();
    }

Another code example that triggers the analyzer:

    namespace
    {
      int main();
    }

If we rewrite the code by the rule, we will get the following:

    namespace N1
    {
      int start();
    }

This diagnostic is classified as:

MISRA-CPP-2008-7.3.2