CATEGORII DOCUMENTE |
Functii prototip
Dupa cum se stie, inaintea folosirii unei functii care intoarce o alta valoare decat int, aceasta trebuie definita.
Functiile prototip au fost adaugate de comitetul ANSI-C standard. Declararea unei functii prototip se face conform urmatorului format:
tip nume_functie (tip_arg1, tip_arg2,)
unde: tip = tipul valorii intoarse de functie;
tip_arg1, tip_arg2, = tipurile argumentelor functiei.
Exemplu: Programul urmator va determina compilatorul sa emita un mesaj de eroare sau de avertisment deoarece acesta incearca sa apeleze functia func() avand al doilea argument de tip int, in loc de float, cum a fost declarat in functia func():
#include <stdio.h>
void func(int, float);//Prototipul functiei func()
void main (void) /* Se afiseaza o nepotrivire */
void func (x, y) /* Parametrii functiei sunt: */
int x; /* x - intreg */
float y; /* y - real */
Functiile prototip se folosesc pentru a ajuta compilatorul in prima faza in care functiile utilizate sunt definite dupa programul principal. Acesta trebuie instiintat asupra tipul datei returnat de o functie pentru a aloca corect memoria. Daca functiile sunt declarate inaintea liniei de program main(), functiile prototip nu mai sunt necesare, deoarece compilatorul extrage informatia despre functii in momentul in care parcurge corpul definitiei lor.
Spre exemplu, programul de mai sus se poate scrie si sub forma urmatoare, in care nu vom mai avea o declaratie de functie prototip:
#include <stdio.h>
void func (x, y) /* Parametrii functiei sunt: */
int x; /* x - intreg */
float y; /* y - real */
void main (void) /* Nu se afiseaza nepotrivire */
Utilizand recomandarile ANSI-C din 1989, programul de mai sus se poate scrie mai compact:
#include <stdio.h>
void func (int x, float y) /* Parametrii formali
includ tipul */
void main (void) //afisare avertisment de conversie
sau, folosind functia prototip:
#include <stdio.h>
void func(); /* Declarare prototip fara
parametri formali ! */
void main (void)
void func (int x, float y) /* Parametrii formali
includ tipul */
In ultimul program am evidentiat o recomandare care simplifica efortul de programare in sensul ca in linia de declarare a prototipurilor functiilor folosite este necesar sa definim tipul functiei nu si tipul parametrilor formali. Compilatorul se informeaza despre tipul parametrilor formali la parcurgerea corpului definitiei functiei.
Din cele de mai sus se observa ca folosirea functiilor prototip ne ajuta la verificarea corectitudinii programelor, deoarece nu este permisa apelarea unei functii cu alte tipuri de argumente, decat tipul celor declarate.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1474
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved