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 151}........Ključna riječ register sugerira prevodiocu da će varijabla biti često korištenai da bi trebala biti alocirana tako da se smanji vrijeme pristupa. To najčešćeznači smjestiti varijablu u registar mikroprocesora. Prevodilac nije dužanpoštovati deklaraciju register, tako da je ona samo sugestija prevodiocu.Na varijablu tipa register ne može se primijeniti adresni operator.9.2.5 Statičke varijableStatičke varijable alociraju se i inicijaliziraju na početku izvršavanja programa,a uništavaju se tek na završetku programa. Vijek trajanja statičkevarijable je cijelo vrijeme izvršavanja programa. Prostor za statičke varijablealocira se u dijelu memorije različitom od dijela u kojem se alocirajuautomatske varijable (što je standardno programski stog).Svaka varijabla definirana izvan svih funkcija je statička. Varijabla deklariranau nekom bloku (npr. funkciji) s identifikatorom memorijske klasestatic je takoder statička varijabla.Ukoliko statička varijabla nije inicijalizirana eksplicitno prevodilac će jeinicijalizirati nulom. Statičke je varijable moguće inicijalizirati samo konstantnimizrazima tako da sljedeći kôd nije ispravan:int f(int j){static int i=j;........}// neispravno9.2.6 Statičke lokalne varijableStatička lokalna varijabla je lokalna varijabla deklarirana s identifikatorommemorijske klase static. Ona postoji za cijelo vrijeme izvršavanjaprograma ali se može dohvatiti samo iz bloka u kojem je definirana. K tomevrijedi i sljedeće pravilo: Statička varijabla definirana unutar nekog bloka inicijalizirase samo jednom i to pri prvom ulazu u blok. Pogledajmo kako se tosvojstvo koristi u jednom primjeru.Želimo napisati program koji ispisuje prvih 20 Fibonaccijevih brojeva. Tosu brojevi definirani rekurzijomF i = F i−1 + F i−2 , (i = 3, 4, . . .) F 1 = F 2 = 1.

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

Saved successfully!

Ooh no, something went wrong!