O que a função main() deve retornar em C++? Valores de retorno corretos
Olá, colegas! Acabei de começar a aprender C++ e tenho uma dúvida fundamental sobre a função `main()`. Em diferentes exemplos de código, vejo que `main()` é declarada com o tipo `int`, mas às vezes encontro `void main()` ou até mesmo `main()` sem tipo. Estou completamente confuso.
Aqui estão alguns exemplos que encontrei:
```cpp
// Exemplo 1
void main() {
// ...
}
// Exemplo 2
main() {
// ...
}
// Exemplo 3
int main() {
// ...
return 0;
}
// Exemplo 4
int main() {
// ...
return 1;
}
```
Meu compilador (Visual Studio 2019) reclama de `void main()`, mas vi que em alguns livros antigos isso é usado. E sobre o `return`? Li em algum lugar que `return 0` significa conclusão bem-sucedida, e `return 1` significa erro. Mas e se eu não retornar nada? Isso será considerado um erro? E, afinal, por que o sistema operacional precisa saber o que meu programa retornou?
Também ouvi falar das constantes `EXIT_SUCCESS` e `EXIT_FAILURE`. Quando devo usá-las?