View Full Version : ** Dubbi in C, help **
Ragazzi quale istruzione C pulisce lo schermo?
PASCAL:
uses crt;
clrscr;
...................................
poi... (ho dei dubbi sui vari significati di RETURN)... (correggetemi se dico fesserie)...
1) return 0 significa che il programma è terminato con successo (che non ha riscontrato problemi durante la sua esecuzione)...
2) return ( y *y) --> nelle varie funzioni definite dal programmatore che poi restituisce quel valore alla funzione chiamate....
3) reutrn; ...
4) return1 ...
5) return -1 ...
6) ce ne sono per caso altri?
questi ultimi quando li uso?
qualcuno può gentilmente spiegarmi queste cose?
grazie mille
return non serve a terminare un programma. è la parola chiave usata per indicare che la funzione corrente è terminata e si deve ritornare al flusso originale del programma. tutti i valori 0, 1, -1 ecc. ecc. non sono altro che il valore ritornato dalla funzione.
quando si da return nella funzione main il programma termina perchè questa è la funzione principale dalla quale vengono chiamate tutte le altre. inoltre il fatto che 0 significhi che il programma è terminato con successo è una pura convenzione.
ciao ;)
mhmhmh quindi? ;)
che differenza c'è scusa? perchè non si usa solo 0 allora, ma trovo -1, 1 ecc? lascia stare le funzioni definite dal programmatore....
e per pulire lo schermo?
Originariamente inviato da VICIUS
return non serve a terminare un programma. è la parola chiave usata per indicare che la funzione corrente è terminata e si deve ritornare al flusso originale del programma. tutti i valori 0, 1, -1 ecc. ecc. non sono altro che il valore ritornato dalla funzione.
quando si da return nella funzione main il programma termina perchè questa è la funzione principale dalla quale vengono chiamate tutte le altre. inoltre il fatto che 0 significhi che il programma è terminato con successo è una pura convenzione.
ciao ;)
e poi non ho MAI detto che serve per TERMINARE UN PROGRAMMA, ma che sta per indicare che il programma non ha riscontrato preblemi nell'esecuzione, QUINDI è terminato con successo ;) non l'ho detto io MA DEITEL&DEITEL... (non so se hai mai sentito questi nomi :rolleyes: )
cmq nessuno saprebbe spiegarmi?
e per pulire lo schermo?
ciao :)
Originariamente inviato da W0lf
e per pulire lo schermo?
ciao :)
non c'è una funzione standard.
alcuni compilatori accettano clrscr() ma probabilmente la cosa migliore è usare la system per richiamare il comando cls o clear (in linux)
Originariamente inviato da W0lf
e poi non ho MAI detto che serve per TERMINARE UN PROGRAMMA, ma che sta per indicare che il programma non ha riscontrato preblemi nell'esecuzione, QUINDI è terminato con successo ;) non l'ho detto io MA DEITEL&DEITEL... (non so se hai mai sentito questi nomi :rolleyes: )
cmq nessuno saprebbe spiegarmi?
e per pulire lo schermo?
ciao :)
bhe allora avevo capito male io. e se devo essere sincero non capisco cosa non haiu capito.
per quanto riguarad questi deitel. no non li ho mai sentiti. si tratta di una nuova compagnia di telefonia mobile :D
ciao ;)
Il return deve ritornare un valore compatibile con il tipo che deve ritornare la funzione...
Nel main il return serve anche a settare l'errorlevel restituito al sistema operativo...
Come convenzione si usa 0 in caso di successo...!=0 in caso di insuccesso (l'errorlevel dovrebbe andare da 0 a 255 almeno così è nel DOS)...
Nelle altre funzioni...è solamente una pura convenzione che può essere rispettata o meno dal programmatore... In C++ ad esempio si tende a ritornare un tipo booleano...e per gli errori gravi si usano le eccezioni...
Ma nn capisco perchè dovrei settare -1 in caso di insuccesso....
vuol dire che so all'inizio che non andrà a buon fine ? ;) ;)
ciao
Infatti non devi settare -1...puoi settare -1, 1, 2, 3000...insomma basta che sia != 0...
vuol dire che so all'inizio che non andrà a buon fine ?
Che intendi ?
Io non capisco perchè andresti a settare un valore == 0 o !0 (-1, 1, 3000, capisci?)
ciao
Per controllare il valore ritornato dalla funzione come se fosse un'espressione booleana:
if(f())
o
if(!f())
VegetaSSJ5
03-01-2004, 12:48
Originariamente inviato da W0lf
Ma nn capisco perchè dovrei settare -1 in caso di insuccesso....
vuol dire che so all'inizio che non andrà a buon fine ? ;) ;)
ciao
semplicemente per convenzione. la funzione di libreria strcmp ad esempio ritorna 0 se le stringhe passate sono di pari lunghezza, 1 se la prima è maggiore della seconda e -1 per il contrario. poi ovviamente il programma che chiama quella funzione deve sapere quali sono i possibili valori che può restituire la funzione chiamata e comportarsi di conseguenza. se tu fai una funzione di confronto di stringhe che ti restituisce -192 se le stringhe sono uguali allora tu nel programma chiamante inserisci una istruzione del tipo
if (x==-192).....
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.