12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9.2. VIJEK TRAJANJA VARIJABLE 1499.1.5 Funkcijski dosegNapomenimo još da postoji i tzv. funkcijski doseg, ali se on primijenjujesamo na labele u goto naredbi. Funkcijski doseg znači da je goto labelavidljiva u cijeloj funkciji, bez obzira na blok u kojem se pojavljuje. Kao štoje rešeno u sekciji 6.8, pomoći goto naredbe ne može se izaći iz funkcije.9.2 Vijek trajanja varijableSvakoj varijabli prevodilac pridružuje odredeni memorijski prostor. Vijektrajanja varijable je vrijeme za koje joj je pridružena njena memorijska lokacija,dakle ukupno vrijeme njene egzistencije. Prema vijeku trajanja varijabledijelimo na automatske i statičke.9.2.1 Automatske varijableSvaka varijabla kreirana unutar nekog bloka (dakle unutar neke funkcije),koja nije deklarirana s ključnom riječi static, je automatska varijable.Automatske varijable se kreiraju na ulasku u blok u kome su deklarirane iuništavaju na izlasku iz bloka. Memorija koju je automatska varijabla zauzimalaoslobada se za druge varijable. Na primjer,......void f(double x) {double y=2.71;static double z;....}varijable x i y su automatske dok z nije, jer je deklarirana s ključnom riječistatic.Automatske varijable mogu se inicijalizirati, kao što je to slučaj s varijablomy. Inicijalizacija se vrši pri svakom novom ulazu u blok u kome jevarijabla definirana. Tako će varijabla y biti ponovo kreirana i inicijaliziranapri svakom novom pozivu funkcije f().Automatska varijabla koja nije inicijalizirana na neki način, na ulaskuu blok u kome je definirana dobiva nepredvidivu vrijednost. Najčešće je tovrijednost koja se zatekla na pridruženoj memorijskoj lokaciji.Osim konstantnim izrazom, inicijalizaciju automatsje varijable moguće jeizvršiti i izrazom koji nije konstantan kao u ovom slučaju:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!