Structura unei funcţii

  • Post author:
  • Post category:Functii

Un program scris în limbajul C/C++ este un ansamblu de funcţii, fiecare dintre
acestea efectuând o activitate bine definită. Din punct de vedere conceptual, funcţia
reprezintă o aplicaţie definită pe o mulţime D (D=mulţimea, domeniul de definiţie), cu
valori în mulţimea C (C=mulţimea de valori, codomeniul), care îndeplineşte condiţia că
oricărui element din D îi corespunde un unic element din C.

Funcţiile comunică prin argumennte: ele primesc ca parametri (argumente)
datele de intrare, efectuează prelucrările descrise în corpul funcţiei asupra acestora şi
pot returna o valoare (rezultatul, datele de ieşire). Execuţia programului începe cu
funcţia principală, numită main. Funcţiile pot fi descrise în cadrul aceluiaşi fişier, sau
în fişiere diferite, care sunt testate şi compilate separat, asamblarea lor realizându-se cu
ajutorul linkeditorului de legături. O funcţie este formată din antet şi corp:

antet_funcţie
{ corpul_funcţiei }

tip_val_return nume_func (lista_declaraţiilor_param_ formali)
{ declaraţii_variabile_locale
instrucţiuni
return valoare
}

Prima linie reprezintă antetul funcţiei, în care se indică: tipul funcţiei, numele
acesteia şi lista declaraţiilor parametrilor formali. La fel ca un operand sau o expresie, o
funcţie are un tip, care este dat de tipul valorii returnate de funcţie în funcţia apelantă.
Dacă funcţia nu întoarce nici o valoare, în locul tip_vali_return se specifică void. Dacă
tip_val_return lipseşte, se consideră, implicit, că acesta este int. Nume_funcţie este un
identificator

Lista_declaraţiilor_param_formali (încadrată între paranteze rotunde) constă
într-o listă (enumerare) care conţine tipul şi identificatorul fiecărui parametru de intrare,
despărţite prin virgulă. Tipul unui parametru poate fi oricare, chiar şi tipul pointer. Dacă
lista parametrilor formali este vidă, în antet, după numele funcţiei, apar doar parantezele
( ), sau (void).

Corpul funcţiei este un bloc, care implementează algoritmul de calcul folosit de
către funcţie. În corpul funcţiei apar (în orice ordine) declaraţii pentru variabilele locale
şi instrucţiuni. Dacă funcţia întoarce o valoare, se foloseşte instrucţiunea return
valoare. La execuţie, la întâlnirea acestei instrucţiuni, se revine în funcţia apelantă.
În limbajul C/C++ se utilizează declaraţii şi definiţii de funcţii.

Declaraţia conţine antetul funcţiei şi informează compilatorul asupra tipului,
numelui funcţiei şi a listei parametrilor formali (în care se poate indica doar tipul
parametrilor formali, nu şi numele acestora). Declaraţiile de funcţii se numesc
prototipuri, şi sunt constituite din antetul funcţiei, din care pot lipsi numele parametrilor
formali

Definiţia conţine antetul funcţiei şi corpul acesteia. Nu este admisă definirea
unei funcţii în corpul altei funcţii.