Ausência de return no main

Em C++, a única função que não exige retorno (ao menos de maneira segura, então se alguma outra função compilar mesmo sem colocar o retorno: cuidado) é a main.

Em outras palavras, a main é a única função na qual se pode retirar a linha iniciada com return do código abaixo:

int main() {
    return 0; // opcional
}

Quando não é colocada essa linha, o compilador já entende o retorno como 0.

O retorno de main é utilizado por quem executou o programa para saber se ele chegou ao fim com sucesso (retorno 0) ou ocorreu alguma falha (retorno negativo). As falhas podem número de envolver:

  • Argumentos* insuficientes (o programa exigia 4 argumentos, mas foram passados 3, 5 ou mesmo nenhum);
  • Programa interrompido pelo usuário;
  • O programa (ou algum outro que ele inicia) não existe;
  • Algum dos argumentos enviados é inválido (ainda que a quantidade esteja correta).

Dentre outros.

*: o conceito de "argumentos" será visto no próximo tópico.