Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

¿Por qué necesitamos usar int main y no void main en C ++?

¿Fue útil?

Solución

La respuesta corta, es porque el estándar C ++ requiere main () para devolver int .

Como probablemente sepa, el valor de retorno de la función main () es utilizado por la biblioteca en tiempo de ejecución como el código de salida para el proceso. Tanto Unix como Win32 admiten el concepto de un entero (pequeño) devuelto por un proceso una vez que ha finalizado. Devolver un valor de main () proporciona una forma para que el programador especifique este valor.

Otros consejos

La mayoría de los sistemas operativos informan al usuario, o al proceso de llamada, si una aplicación fue exitosa o no. Esto es especialmente útil en las secuencias de comandos, donde la secuencia de comandos puede ramificarse condicionalmente (si es así) en los resultados de un programa. Algo en la línea de:

// pseudo-code
screenscrape  http://mydatasource.com > results.txt
if errorlevel == 0 then
   processfile results.txt
else
   echo Screen Scraping Failed!
end if

Este estado del resultado se realiza mediante el valor de retorno de main.

Si bien algunos compiladores permiten anular main, en aras de la coherencia y la simplicidad, el estándar ANSI requiere un único prototipo de main:

int main(int argc, char *argv[]);

Debido a que en C, la persona que llama limpia los argumentos, el autor de main puede descuidar declarar o procesar los argumentos argc & amp; argv. Sin embargo, si las rutinas de configuración que llaman a main esperan un valor de retorno int y, en cambio, no encuentran uno, el comportamiento puede ser indefinido.

Respuesta corta:

  • El valor de retorno de main es útil para secuencias de comandos.
  • Las rutinas de configuración y limpieza que invocan main necesitan una interfaz consistente para usar.

Motivo principal para cambiar

  

void main () {}

a

  

int main () {}

en versiones posteriores era notificar error ocurrido en el programa durante la ejecución al sistema operativo en el que se ejecuta

return 0;

el programa de identificación se ejecutó con éxito si se devuelve algún número en lugar de 0, lo que significa que se produjo un error de quién es código de error devuelto por main. si está ejecutando en IDE de bloque de código , vea en el registro de compilación si el retorno principal 0 normalmente se muestra

Process terminated with status 0

de lo contrario, muestra el código de estado en rojo, lo que significa que ocurrió un error

De Wikipedia:

  

El valor devuelto por la función principal se convierte en el estado de salida del proceso, aunque el estándar C solo atribuye un significado específico a dos valores: EXIT_SUCCESS (tradicionalmente cero) y EXIT_FAILURE . El significado de otros posibles valores de retorno está definido por la implementación.

Como en C, porque el proceso le dará al sistema operativo un código de salida.

Puedes usar

int main (int argc, char ** argv)
{
  return (0);
}

o

int main (int argc, char ** argv)
{
  exit (0);
}

Esto es al menos en C89 IIRC.

Debido a que int es el código de retorno, un programa puede regresar al sistema operativo.

Puede consultar este valor para verificar si la operación ha sido exitosa.

Esto fue extremadamente útil al usar scripts de línea de comandos.

Cuando ejecutamos nuestro programa para verificar que se ejecute con éxito o no. Entonces, cuando devuelve 0, eso significa que es cierto & amp; se ejecutó correctamente, si devuelve 1, entonces no se ejecuta correctamente & amp; este valor int le dice al sistema operativo si el programa se ejecutó correctamente o no

Quizás porque tiene sentido salir limpiamente con un código de estado del método main () . En Java, tenemos que emular esto usando System.exit () que no es tan elegante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top