Întoarcere valori, programare pe c și c

Toate funcțiile cu excepția funcțiilor, cum ar fi valori nule, retur. Această valoare este determinată în declarația de retur. Dacă funcția nu este definită ca un gol, și cu excepția cazului în valoare de returnare specificat este returnat moloz. Dacă funcția nu este declarată nulă, acesta poate fi folosit ca un operand în orice expresie validă. Prin urmare, fiecare dintre următoarele afirmații este corectă:

if (max (x, y)> 100) printf ( "mai mare");

pentru (ch = getchar (); isdigit (ch);). ;

Cu toate acestea, funcția nu poate sta pe partea stângă a operatorului de atribuire. operator de tip

swap (x, y) = 100; / * Operator nevalid * /

greșit. Compilatorul va genera o eroare.

În cazul în care funcția este declarată nulă, nu poate fi utilizat în expresii. De exemplu, să presupunem că f () este declarată nulă. Următoarele afirmații nu vor compila:

int t;
t = f (); / * Nici o valoare pentru atribuirea t * /
f () + f (); / * Nici o valoare pentru a adăuga * /

Deși nu toate funcțiile au o valoare nulă de întoarcere, atunci când programele de scriere utilizat, în general, trei tipuri de funcții. Primul tip - este o funcție de calcul. Acesta este conceput pentru a efectua operațiuni cu argumentele și returnează o valoare bazată pe aceste operațiuni. Exemple de astfel de funcții sunt sqr () și sin () - functie standard de bibliotecă.

Următorul tip de funcție procesează informația și returnează o valoare care indică dacă lucrarea este de succes sau a rezultat din greșeală. Un exemplu este fwrite () - funcția utilizată pentru înregistrarea de informații într-un fișier. Dacă o intrare a fost de succes, fwrite () returnează numărul de elemente înregistrat cu succes. Dacă apare o eroare, numărul de întoarcere nu este egal cu numărul de elemente solicitate să fie scrise.

Ultimul tip de funcție nu are nici o valoare întoarcere definită. Funcția este o procedură de rutină și nu dă valoare. Un exemplu este srand (), este utilizat pentru a inițializa funcția de numere aleatoare rand (). Uneori, funcții nu emit un rezultat bun-simț că unii încă mai sunt. De exemplu, printf () returnează numărul de caractere imprimate. Este foarte dificil de a găsi un program pe care îl verifică. Prin urmare, deși toate funcțiile, cu excepția funcțiilor declarate ca valori nule, de returnare, nu este nevoie de a utiliza toate aceste valori. O întrebare tipică pentru valoarea funcției de întoarcere este, „Nu ar trebui să atribuie valoarea unei variabile ca valoare se întoarce?“ Raspuns: „Nu“. Dacă nu este specificat, care este atribuită valoarea returnată, aceasta este pur și simplu aruncat. Luați în considerare următorul program folosind Mul ():

int Mul (int a, int b);

int Mul (int a, int b)
returnează un * b;
>

Linia 1 seturi returnate de valoarea Mul () a variabilei z. În linia 2, valoarea returnată nu este utilizată în mod direct, dar este folosit funcția indirect printf (). În cele din urmă, în linia 3, valoarea returnată este pierdut, deoarece nu atribuie o valoare unei variabile și, de asemenea, nu este utilizat în oricare dintre expresiile.

articole similare