En C, la función main devuelve un valor entero que indica el estado con el que el programa terminó y ese valor es enviado al sistema operativo.
Si usas return 0; al final de main, estás indicando que el programa finalizó correctamente, sin errores.
Si usas un valor diferente de 0, ese valor representa un estado de terminación anormal o un código de error o excepción. Por ejemplo, return 1; puede significar que ocurrió algún error durante la ejecución.
Este valor devuelto puede ser utilizado por otros programas, scripts o el sistema operativo para saber si el programa tuvo éxito o si ocurrió algún problema. Es común utilizar diferentes valores diferentes de cero para indicar distintos tipos de errores, facilitando así la gestión y diagnóstico cuando tu programa es ejecutado dentro de un entorno más grande, como scripts batch o sistemas operativos.
Además, existen constantes simbólicas estándar definidas en <stdlib.h> que puedes usar para estos fines:
EXIT_SUCCESS (equivalente a 0, indica éxito)
EXIT_FAILURE (indica fallo)
Ejemplos de uso:
int main() {
// código
return 0;
}
#include <stdlib.h>
int main() {
if (/* algún error */) {
return EXIT_FAILURE; // Indica fallo
}
return EXIT_SUCCESS; // Indica éxito
}