Avatar ·

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?