Per prima cosa "warning" non è un errore, ma, appunto, un "avvertimento".
Hai copiato il codice da un testo piuttosto vecchio o, quantomeno, non conforme allo standard ed il compilatore ti segna quelle che sono le "imperfezioni".

La funzione "main" dovrebbe avere la seguente firma:

codice:
int main(int argc, char **argv);
Dovrebbe, quindi, ricevere due valori: il numero di parametri passati all'eseguibile e la lista di tali parametri. Dovrebbe, inoltre, ritornare un valore intero ad indicare la terminazione corretta del programma o meno. Di conseguenza, dovrebbe avere un "return" alla fine che ne indica lo stato di uscita.

Il compilatore si accorge che:

1) hai dichiarato la funzione senza specificare alcun tipo (né int, né void, né altro) di conseguenza lo interpreta, di default, come una funzione che restituisce un intero.

2) Ha parsato tutto il sorgente e non ha trovato un punto di uscita dalla funzione che dovrebbe restituire un intero (vedi punto precedente).

La prosima volta, fai lo sforzo di copiare nel forum i messaggi di warning ed il codice che hai scritto, così evitiamo che gli utenti debbano andare su altri siti per cercare di aiutarti e debbano anche star lì a chiudere popup inutili.


Ciao.