E-učenje proširenje kompetencija nastavnika
Objavio Dragica Stanisic 24. april 2024.
Skripte, Informacione tehnologije
Objavio izuzetnanagrada 28. jun 2013. Prijavi dokument
LEKCIJA 18: Getting More from Functions
Kao što znate do sada, funkcije su centralne za C programiranje. Danas ćete naučiti još neke načine
kako da koristite funkcije u vašim programima, uključujući:
Prosljeđivanje pointera funkcijama
Default-ni metod za prosljeđivanje argumenta funkciji je po vrijednosti. Prosljeđivanje po vrijednosti (passing by value) znači da je funkciji prosljeđena kopija vrijednosti
argumenta.
Ovaj metod ima tri koraka:
1. Procjenjuje se izraz argumenta.
2. Rezultat je kopiran na stack, privremeni smještajni prostor u memoriji.
3. Funkcija vraća argumentovu vrijednost sa stack-a.
Kada je varijabla prosljeđena funkciji po vrijednosti, funkcija ima pristup vrijednosti varijabli, ali ne i oreginalnoj kopiji varijable. Kao rezultat, kood u funkciji ne može promijeniti (modifikovati) oreginalnu varijablu. Ovo je glavni razlog zašto je prosljeđivanje po vrijednosti default-ni metod prosljeđivanja argumenata: Podaci izvan funkcije su zaštićeni od nepažljive (inadvertent) modifikacije. Prosljeđivanje argumenata po vrijednosti je moguće sa osnovnim tipovima podataka (char, int, long, float, i double) i structurama.
Postoji još jedan način prosljeđivanja argumenta funkciji, ipak: prosljeđivajući pointer varijabli argumenta, radije nego vrijednost same varijable. Ovaj metod prosljeđivanja argumenta se naziva prosljeđivanje po referenci (passing by reference).
Kao što ste naučili Dana 9, (“Understanding Pointers”), prosljeđivanje po referenci je jedini način da prosljedite niz ka funkciji; prosljeđivanje niza po vrijednosti nije moguće.
Sa ostalim tipovima podataka, ipak vi možete koristiti bilo koji metod. Ako vaš program koristi velike strukture, njihovo prosljeđivanje po vrijednosti može prouzrokovati da
nestane prostora na stack-u. Pored ove opaske, prosljeđivanje argumenta po referenci, umjesto po vrijednosti, obezbjeđuje kako prednosti tako i nedostatke:
Objavio Dragica Stanisic 24. april 2024.
Objavio kacab 24. april 2024.
Objavio bojann998 18. april 2024.
Objavio Dijana994 25. april 2024.
Objavio mitrovicm993 24. april 2024.
Objavio Dragica Stanisic 24. april 2024.
Komentari
You must be logged in to post a comment.