I tre codici propsti non sono la stessa cosa.
void function(void)
dici che la funzione non restituisce niente e non prende nessun argomento
void function()
non viene specificato che la funzione non accetti nessun parametro
function()
senza tipo specificato di default la funzione ritorna un int ma è sconsigliato fate cosi ed il compilatore lo segnala con
warning: return type defaults to ‘int’ [-Wimplicit-int]
che se lo leggi diveta:
attenzione: il tipo di ritorno di defaults è 'int' [ il flags che attiva il warning è -Wimplicit-int ]
usando quindi il tipo di default che non è void ma int
main()
{
puts("hello world!");
}
il compilatore oltre ad avvertirti con il messaggio precedente ti avvisa che ti sei dimenticato di ritornare un valore
warning: control reaches end of non-void function [-Wreturn-type]
attenzione: la funzione non ritorna nulla ma non è del tipo void [ flags che attiva l'errore -Wreturn-type ]