Mejor respuesta
¿Supongo que estás hablando de la función «main ()»?
En UNIX / Linux, donde se inventó C (y posiblemente en otros sistemas operativos) cuando un programa sale, devuelve un «estado de salida» que el sistema que lo inició en ejecución puede usar para saber si tuvo éxito o falló.
Un resultado devuelto de cero significa «¡Todo funcionó bien!» – un resultado distinto de cero indica algún tipo de código de error.
Esto no se usa mucho (si es que se usa) en entornos gráficos donde las personas inician programas desde un ícono o algo. Pero en las aplicaciones de línea de comandos, es una bendición.
Tomemos, por ejemplo, la herramienta «make», que se utiliza para compilar y vincular aplicaciones complicadas. Los diversos compiladores y enlazadores hacen un «retorno 0» cuando el programa en el que están trabajando se compiló correctamente, o «devuelven 1» si no se compiló.
El programa «make» examina el retorno estado de cada programa que ejecuta, y aborta la compilación si uno de ellos devuelve algo distinto de cero.
Esto es algo realmente útil.
Así que tengo un programa que escribí que realiza un procesamiento de imágenes. Si el archivo que lee está dañado, hace un «retorno 2» – si el archivo no existe, hace un «retorno 1» y solo si todo funcionó bien, «devuelve 0».
Ahora – si tengo algún programa complicado para construir que tiene imágenes integradas en su paquete de lanzamiento – puedo hacer que mi Makefile active el programa de procesamiento de imágenes – y si falla por alguna razón – interrumpirá la ejecución de «make» así que puede arreglarlo.
Todas las herramientas de línea de comandos de UNIX / Linux devuelven un valor distinto de cero para fallas, por lo que incluso si solo usa el programa estándar «rm» para eliminar un archivo, hará un «Devuelve 0» si el archivo se eliminó correctamente o «devuelve 1» si no se pudo eliminar por cualquier motivo.
Algunos programas devuelven códigos diferentes dependiendo de qué salió mal exactamente, pero esto es bastante inusual.
Tenga en cuenta también que cuando llama a la función «exit (0)», el parámetro «0» también es el estado de retorno … así que haga «exit (0)» cuando las cosas funcionen bien y » exit (1) ”cuando no lo están.
Respuesta
Hay un En muchos lugares diferentes puede ejecutar una instrucción return 0 en C, por lo que esta pregunta obtendrá una variedad de respuestas.
Vamos Yo respondo un caso específico:
int main(int argc, char *argv[])
{
...
return 0;
}
¿Por qué devolvemos 0 desde main?
En la familia de sistemas operativos * IX, ejemplificada primero por UNIX y luego Linux, existe un programa con un único código de salida entero, nominalmente utilizado para indicar éxito o fracaso.
En la mayoría de los casos, un valor de 0 indica éxito, y un valor distinto de cero es un fracaso, y el valor suele indicar alguna información de error específica.
Los programas C y C ++ que se ejecutan en sistemas * IX proporcionan este código de salida mediante un valor entero pasado a la función exit () de la biblioteca estándar, o el entero devuelto desde main () .
Entonces, en este caso, devolvemos 0 desde main para indicar a los sistemas * IX que el programa terminó con un código de éxito.
-Mark