void main()
se utiliza cuando la aplicación no va a devolver ningún valor al sistema operativo, o a otra aplicación que haya ejecutado ese programa. Evidentemente, y como indica el indicador de tipo de dato devuelto por la función, es void
, por lo que si utilizas un return
dentro de void
, el compilador te dará un warning ya que interpreta muy sabiamente que estás intentando compilar una función void, que no debería devolver nada, y detecta que hay un código de salida en la función (el valor 0 que sigue a return).
Si la función debe devolver un valor al sistema operativo, o a otra aplicación, entonces, debes utilizar un indicador de tipo distinto de void (tipo nulo, en C). Perfectamente puedes usar int (para devolver un entero, que es lo más habitual), aunque puedes usar un DWORD (para devolver un entero sin signo de 32 bits), un short int (para números enteros con signo de 16 bits), etc.
En definitiva: Si la función principal main, debe devolver un valor a la salida del programa, debes utilizar int (u otro tipo de datos no nulo). Si la función no debe devolver nada, entonces utiliza void (tipo nulo). Si debe devolver algo, utiliza return, y si no debe devolver nada, no lo uses (directamente llega al símbolo } que es el cierre de función en C, y por lo tanto, si se llega al final de la función main, el programa terminará su ejecución).