﻿# 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](https://www.misra.org.uk/) \(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:

```cpp
namespace N1
{
  int main();
}
```

Another code example that triggers the analyzer:

```cpp
namespace
{
  int main();
}
```

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

```cpp
namespace N1
{
  int start();
}
```