PDA

Visualizza la versione completa : [c] nel main meglio ritornare 0 o 1?


ascatem2
26-03-2005, 14:26
la domanda vi sembrerà alquanto stupida.. ma mi sono posto il quesito pensando al loro significato simbolico.

zero è interpretato uguale a FALSE, falso
uno è interpretato uguale a TRUE, vero

ora, da un punto di vista prettamente teorico, sarebbe meglio ritornare true o false?

grazie :D

_sys/sid
26-03-2005, 14:43
return(0); indica nessun errore... (In Genere)
Infatti su Linux se tu dai una serie di comandi
Esempio:
cd && cd /usr/nonEsiste && echo "Ciao"
Si blocchera' quando un programma ritorna un valore diverso da 0

Ma in stdlib.h ci sono due costanti EXIT_SUCCESS e EXIT_FAILURE da usare come ritorno del main.

quindi se tutto e' andato bene puoi fare return(EXIT_SUCCCESS) altrimenti return(EXIT_FAILURE)

In genere EXIT_SUCCESS = 0 e EXIT_FAILURE = 1

Cmq return(0) e' nessun errore.

ascatem2
26-03-2005, 14:53
a me avevano insegnato che 1==TRUE e quindi era corretto ritornare 1, in ogni caso in win nn da nessun tuipo di errori, cmq terrò a mente :D, grazie!!

_sys/sid
26-03-2005, 14:55
Il Valori di ritorno dice se ci sono stati errori o meno...
Quindi:
1 = true (Ci sono stati Errori)
0 = false (Non ci sono stati errori)

:)

ascatem2
26-03-2005, 16:42
Originariamente inviato da _sys/sid
Il Valori di ritorno dice se ci sono stati errori o meno...
Quindi:
1 = true (Ci sono stati Errori)
0 = false (Non ci sono stati errori)

:)

ah, k, grazie!!!

maurizio2
26-03-2005, 22:06
In c non ci sono parole riservate come true o false.
EXIT_FAILURE O EXIT_SUCCESS(1 e 0) sono costanti simboliche.
quindi non vi e' alcuna conversione di tipo tra 1 e true.
Questo e' vero in C++ che ha aggiunto altre parole riservate
come true e false.
E' vero incece in C che un'espressione condizionale
venga convertita in 1 o 0 perche' questi sono i valori
che le istruzioni di condizione(if o if/else) accettano
per eseguire il proprio codice.
Ciao :ciauz:

Ed_Bunker
29-03-2005, 14:12
Originariamente inviato da ascatem2
la domanda vi sembrerà alquanto stupida.. ma mi sono posto il quesito pensando al loro significato simbolico.

zero è interpretato uguale a FALSE, falso
uno è interpretato uguale a TRUE, vero

ora, da un punto di vista prettamente teorico, sarebbe meglio ritornare true o false?

grazie :D
Quando fai la return (Nel main) o una exit (Se sei un processo figlio) non devi fare riferimento a TRUE (!=0) o il FALSE (0).
Puoi "optare" per fare una return/exit(EXIT_SUCCESS) oppure una return/exit(EXIT_FAILURE). Quali valori esse abbiano (Presumibilmente 0 ed 1) non ha importanza...

maurizio2
29-03-2005, 14:52
Si infatti l'utilizzo di tali costanti(o i semplici 1 e 0)
ti servono per individuare nel sorgente i punti in cui
e' successo qualcosa di storto.

Loading