CATEGORII DOCUMENTE |
Forma generala a unei functii
Principalul mijloc prin care se pot modulariza programele C este oferit de conceptul de functie (unele functii standard au fost deja folosite pentru diverse operatii). In C orice functie 'intoarce' (returneaza), dupa apel, o valoare al carui tip trebuie cunoscut. In practica, insa, de multe ori valorile returnate de functii sunt ignorate. Standardul limbajului C permite chiar declararea explicita a functiilor care nu returneaza valori ca fiind de tip void.
In C o functie poate fi definita, declarata si apelata.
Definirea unei functii C se realizeaza dupa urmatorul format general:
tip nume_functie (lista_parametri)
declaratii_parametri
sau, o forma mai noua adoptata de ANSI-C in 1989:
tip nume_functie (declaratii _parametri)
Tipul unei functii corespunde tipului valorii pe care functia o va returna utilizand instructiunea return. Acesta poate fi un tip de baza (char, int, float, double etc.) sau un tip derivat (pointer, structura etc.).
Daca pentru o functie nu se specifica nici un tip, atunci, implicit se considera ca functia intoarce o valoare intreaga.
Lista parametrilor, lista_parametri, este o lista de nume de variabile separate prin virgula care vor primi valorile argumentelor in momentul apelarii acesteia. Tipul acestor parametri este descris fie in paragraful declaratii_parametri, fie direct in lista parametrilor. Lista parametrilor este inchisa intre paranteze. Chiar daca o functie nu are parametri, parantezele nu trebuie sa lipseasca.
De exemplu, functia max(a, b), care returneaza cel mai mare dintre numerele intregi a si b, se poate defini sub forma:
int max(a, b) sau int max(int a, int b)
int a, b;
}
In cazul in care tipul parametrilor formali ai unei functii nu se declara, atunci ei sunt considerati implicit de tip int. In cazul compilatoarelor moderne, programul urmator va genera doua avertismente.
Exemplu:
# include <stdio.h>
float max(); // Prototipul functiei max()
float x;
void main()
float max(a, b)
float a, b;
In urma compilarii va rezulta:
Compiling
test.c
C:cpp_examplestest.c(11): warning C4244: 'return': conversion from 'int' to 'float', possible loss of data
C:cpp_examplestest.c(13): warning C4244: 'return': conversion from 'int' to 'float', possible loss of data
test.obj - 0 error(s), 2 warning(s)
Aceste avertismente sunt generate deoarece, la primul pas al compilarii, la parcurgerea liniei de declarare a functiei:
float max(a,b)
parametrii formali a si b sunt considerati de tip intreg.
Programul, modificat ca mai jos, va duce la o compilare fara probleme:
Exemplu:
# include <stdio.h>
float max();
float x;
void main()
float max(float a, float b)
Tot corect va rula si programul:
# include <stdio.h>
int max();
int x;
void main()
int max(a,b)
Se observa ca nu mai este nevoie de declararea explicita a parametrilor formali de tip intreg a si b.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1167
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved