int main () vs void main () en C

En C, sé que int main () devuelve un int donde void main () no lo hace. Aparte de eso, ¿hay alguna diferencia entre ellos? primero es mejor que el segundo?

La abrumadora mayoría de las veces, uno de int main(void) o int main(int argc, char* argv[]) es lo que necesita usar. En particular, si está escribiendo un progtwig que comstackrá cualquier comstackdor principal para ejecutarlo en una computadora personal, con el conjunto completo de las bibliotecas estándar de C, seguramente necesitará devolver una int desde main .

(También evitaría usar una lista de argumentos vacía, consulte ” ¿Por qué no usamos (vacío) en main? “)

El estándar C99 permite otras firmas definidas por la implementación, y puede usarlas si ha leído el manual de su comstackdor y dice que puede hacerlo.

(5.1.2.2.1) Se debe definir con un tipo de retorno de int y sin parámetros … o con dos parámetros … o de alguna otra manera definida por la implementación

Personalmente, los evitaría, incluso si están permitidos (si es posible), porque es una cosa más de la que preocuparse si alguna vez necesita conectarse a otro sistema.

Ver los comentarios a continuación ” ¿Por qué no usamos (vacío) en main? ” Para una discusión interesante sobre esto.

Si su libro dice void main() , o está muy desactualizado, fue escrito por un idiota (o ambos)

edit: OK, a menos que se encuentre en un sistema muy poco probable en el que tenga un main independiente. Consulte ¿Por qué el tipo de función principal en C y c ++ le queda al usuario para definir?

void main() no es válido C. int main() es. Esa es la principal diferencia.