PDA

View Full Version : ** Dubbi in C, help **


W0lf
02-01-2004, 21:17
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

VICIUS
02-01-2004, 21:27
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 ;)

W0lf
02-01-2004, 21:45
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?

W0lf
02-01-2004, 22:17
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 :)

recoil
02-01-2004, 22:41
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)

VICIUS
02-01-2004, 23:11
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 ;)

cionci
03-01-2004, 00:35
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...

W0lf
03-01-2004, 11:08
Ma nn capisco perchè dovrei settare -1 in caso di insuccesso....

vuol dire che so all'inizio che non andrà a buon fine ? ;) ;)

ciao

cionci
03-01-2004, 11:41
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 ?

W0lf
03-01-2004, 12:24
Io non capisco perchè andresti a settare un valore == 0 o !0 (-1, 1, 3000, capisci?)

ciao

cionci
03-01-2004, 12:28
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).....