CATEGORII DOCUMENTE |
Valori returnate
Toate functiile, cu exceptia celor daclarate a fi de tip void, returneaza o valoare. Aceasta valoare este fie explicit specificata prin return, fie este zero daca nu se utilizeaza instructiunea return. Daca o functie este declara ta ca fiind de tip void, aceasta poate fi folosita in orice expresie C.
O functie nu poate fi membrul stang intr-o expresie de atribuire. De exemplu, instructiunea: swap(x,y) = 100; este gresita.
Functiile care nu sunt de tip void se pot imparti in trei categorii:
1) Functii 'pure' sunt functiile care efectueaza operatii asupra argumentelor si returneaza o valoare de baza pe acea operatie. Exemplu: sqrt() si sin() returneaza respectiv radacina patrata si sinusul argumentului.
2) A doua categorie de functii sunt cele care manipuleaza informatii si intorc o valoare care arata reusita sau esecul acestei manipulari. Un exemplu este fwrite() folosita pentru a scrie informatii pe disk. Daca scrierea se face cu succes, fwrite() intoarce numarul de octeti inscrisi (ceruti sa se inscrie); orice alta valoare indica aparitia unei erori.
3) A treia categorie de functii sunt cele care nu trebuie sa intoarca o valoare explicita. De exemplu, functia printf() intoarce numarul de caractere tiparite, numar care, de obicei, nu are o utilizare ulterioara.
Daca pentru o functie care returneaza o valoare nu se specifica o operatie de atribuire, calculatorul va ignora valoarea returnata.
Exemplu: Consideram urmatorul program care utilizeaza functia mul():
# include <stdio.h>
mul();
void main (void)
mul(a,b) // Se defineste functia mul()
Linia a atribuie valoarea returnata de mul() lui z. In linia b, valoarea returnata nu este atribuita, dar aceasta este utilizata de printf(). In linia c valoarea returnata este pierduta, deoarece nu se atribuie nici unei variabile ce va fi utilizata in alta parte a programului.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 958
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved