¿Por qué necesitamos la función main() en lenguaje c?
main() omite el tipo de valor de retorno. El lenguaje C utilizará de forma predeterminada el tipo de int ingresado en main y devolverá un valor en el cuerpo de la función main(), como devolver 0
El valor de retorno de void main() es de tipo void, lo que significa que no hay valor de retorno. De esta manera no es necesario escribir una declaración de devolución como return 0; o return 1 en la función main();
En el programa, se puede decir que no se puede distinguir entre los dos, porque main () es el punto de entrada del lenguaje C. Si el punto de entrada regresa, el programa finaliza. el lenguaje C Esta característica parece inútil. Pero si no funciona, ¿por qué lo hicieron los diseñadores del lenguaje C? Debe ser útil.
Así es, lo que acabo de decir es que dentro de un programa, parece que no funciona. Pero esta funcionalidad es útil si un programa (prog2) llama a otro programa (prog1) (en este caso, prog2 llama directamente al ejecutable compilado de prog1). Esto se debe a que el programa 2 necesita conocer el estado del programa 1 después de ejecutarse. Por ejemplo, si escribe un programa en C que elimina un archivo (llamado provisionalmente delf) y luego usa otro programa para llamar a delf, ¿qué pasará con el resultado de la llamada? ¿Se eliminó el archivo? Aquí es donde int main() resulta útil. En el idioma principal predeterminado del lenguaje C, si el valor de retorno es 0, la llamada del programa es exitosa, si son otros valores, el código de error es diferente. En su programa delf, si el archivo se elimina con éxito, devuelva 0 en int main(), y otros programas que llamen a delf sabrán, oh, que la operación fue exitosa.
Muchos comandos en sistemas Unix/linux obtienen resultados de esta manera.
No creo que haga falta decir nada más sobre el libro de Tan Ho Keung, su circulación habla por sí sola. Después de todo, la segunda edición se escribió antes y la tercera edición se reescribió de acuerdo con muchas necesidades actuales, y el contenido es ciertamente mejor. Dado que lz es un principiante en el lenguaje C, realmente no hay necesidad de perder demasiado tiempo en este tema. Cuando tenga más experiencia en proyectos, comprenderá mejor este problema.
He introducido las diferencias entre main(), int main() y void main() arriba. Sugiero que ignore sus diferencias, las trate como si fueran la misma cosa y aprenda otras partes del lenguaje C. primero. En cuanto a escribir main() directamente, no lo recomiendo. Incluso si el compilador lo aprueba, este estilo de programación es demasiado vago y no favorece el desarrollo de buenos hábitos.