VALORI DI RITORNO

di il
4 risposte

VALORI DI RITORNO

Ciao a tutti,
spesso, come valore di ritorno di una funzione (ad esempio, quando viene stampato un messaggio di errore)vengono utilizzate le espressioni:
return;
oppure
return 0;
ma qual è la differenza tra le due?

4 Risposte

  • Re: VALORI DI RITORNO

    Ciao,
    La differenza è enorme:
    return;
    significa che la funzione ritorna void(niente). Quindi non è una funzione che vuole comunicare qualcosa al suo termine, come per esempio un messaggio di errore, quando stampa un errore non ha senso usare un valore di ritorno.

    return 0;
    Significa che il valore ritornato è 0, quindi è una funzione int, solitamente lo 0 sta a significare che la funzione ha eseguito con successo i suoi compiti e si chiude così.
    Per esempio quando il main ritorna 0, significa che il programma ha funzionato, se invece ritorna un altro valore allora significa che c'è qualche problema.

    Ti troverai(o forse ti sei già trovato) di fronte ad un return NULL;
    che si usa in una funzione che ritorna un puntatore.
    Per esempio quando in una condizione si scopre che qualcosa è andato storto e il puntatore non è stato creato, si ritorna NULL:

    int *a;
    a = creapuntatore;

    a è un puntatore a niente(non punta a niente.) perchè qualcosa è andato storto, di solito si controlla se un puntatore punta a qualcosa prima di usarlo e così si scopre subito l'errore.
  • Re: VALORI DI RITORNO

    Grazie
  • Re: VALORI DI RITORNO

    Un manuale niente eh?
    se il valore di ritorno e zero non c'è differenza.
    molto spesso la forma return; si usa per le funzioni void alle quali non interessa il valore di ritorno. e uno lo mette più per abitudine che per altro.
    comunque la forma più corretta è return 0;
  • Re: VALORI DI RITORNO

    smalldragon ha scritto:


    comunque la forma più corretta è return 0;
    "Più corretta" per cosa? Per una funzione void è addirittura sbagliata !
    In quel caso si *deve* usare semplicemente return; oppure omettere il return stesso.

    Per le funzioni "non void", quello che restituiscono dipende dalle funzioni stesse e quindi non si può dire che restituire 0 è meglio di altro ...

    Studiamoli i manuali oltre ad averli ...
Devi accedere o registrarti per scrivere nel forum
4 risposte