// primer1.c #include // (1) //globalna promenjiva, vidljiva svuda // GLOBALNI DOSEG PROMENLJIVE - dosek nivoa datoteke int globalna = 10; // (3) // uvodimo funkciju i u njoj lokalnu promenljivu // i sama funkcija ima globalni doseg, funkcija f je identifikator i // njen doseg je globalan // (u teoriji bi se mogla definisati funkcija unutar funkcije i njen doseg // bi bio blok u kome je definisana i nece biti vidljiva van funkcije) int f(){ // (4) // lokalna promenljiva - vidljiva je samo u funkciji u kojoj je definisana int broj = 3; // (5) // globalnoj promenljivoj mozemo pristupiti svuda globalna = globalna -2; // (10) // ako uvodimo neke blokove if (broj) { // promenljiva uvedena u bloku bice vidljiva samo u njemu, nece se videti // van bloka // DOSEK NIVOA BLOKA // vidljivo u bloku (unutar viticastih zagrada) // pa i u svim ugnjezdenim blokovima int i = 0; } // (11) // greska ako pokusamo da pristupimo promenljivoj i van bloka u kom je // uvedena // return broj + i; return broj; } // (6) // ako uvodimo drugu funkciju, u njoj ne vidimo promenljivu iz prve funkcije // ali vidimo globalnu promenljivu int g(){ // (8) // globalnoj promenljivoj mozemo pristupiti svuda globalna = globalna -2; // (7) // prva greska //broj = broj * 2; //return broj; } // (12) - dva teorijska dosega // DOSEG NIVOA PROTOTIPA FUNKCIJE // x i y su identifikatori koji su vidljivi samo u ovom prototipu funkcije int min(int x, int y); // (13) // DOSEG NIVOA FUNKCIJE // labele koje se koriste uz goto komandu int main(){ printf("Poziv funkcije f:\n"); printf("%d\n", f()); // (2) // globalnoj promenljivoj mozemo pristupiti svuda globalna = globalna -2; printf("%d\n", globalna); // (9) // druga greska // broj = broj * 3; return 0; }