 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
dgregor Član

Pridružen-a: Čet 06 Jan 2005 13:55 Prispevkov: 32 Aktiv.: 0.14 Kraj: Celje
|
Objavljeno: Čet Maj 18, 2006 9:13 am Naslov sporočila: Procedure in funkcije v MicroBasucu! |
|
|
Ugotovil sem, da sem še vedno začetnik v MicroBasicu, čeprav se mi je zdelo da že nekaj znam !
Muči me organizacija programa in procedure in funkcije:
Razumem, da funkcija vrne rezultat, procedura pa ne. Zanima me kdaj je potrebno definirati spremenljivko znotraj procedure in kdaj jo definirati na začetku glavnega programa?
Kakšna je razlika pri delovanju procedure, če se spremenljivka definira na začetku glavnega programa ali v sami proceduri?
LP, in naprej hvala za informacije!
Gregor |
|
Nazaj na vrh |
|
 |
Slemi Član

Pridružen-a: Pet 29 Okt 2004 13:29 Prispevkov: 386 Aktiv.: 1.63 Kraj: Hrastnik
|
Objavljeno: Čet Maj 18, 2006 9:19 am Naslov sporočila: |
|
|
Če definiraš spremenljivko v začetku programa postane globalna spremenljivka, to pomeni da je aktivna v celotnem programu, če pa jo definiraš v proceduri pa postane lokalna, kar pomeni da ob izhodu iz procedure te spremenljivke ni več.
Lp _________________ slemi.info - en
slemi.si - slo |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Čet Maj 18, 2006 9:24 am Naslov sporočila: |
|
|
Prakticno v vseh programskih jezikih (aktualnih za mikrokontrolerje) je enako:
Ce spremenljivko definiras "na zacetku programa" (izven procedure/funkcije), potem bo spremenljivka globalna. To pomeni, da bodo do nje lahko dostopale tako posamezne procedure/funkcije (in bodo vse spreminjale isto vrednost), kot tudi glavni program. Ce jo deklariras samo v proceduri/funkciji, jo bo "videla" samo ta procedura/funkcija, glavni program in druge procedure/funkcije pa ne. Ena prakticna posledica tega je, da so lahko lokalne spremenljivke poimenovane enako (npr. "temp" za zacasno spremenljivko), pa kljub temu vsaka procedura/funkcija sari po "svoji" spremenljivki in ne po globalni, kar bi lahko zmedlo kaksen drug del programa. Uporabis globalno ali lokalno odvisno od potreb.
Razlika v delovanju je v tem, da bo pri globalni spremenljivki procedura ne more zanesljivo vedeti kdo (in ce sploh) je vrednost spremenil. V dolocenih primerih je to zelo zazeljeno, ker rabis asinhrono (od toka programa) spremenjeno vrednost -npr. globalni stevci. Ce bi rad, da lahko samo dolocen del programa spremeni vrednost, na podlagi katere potem procedura nekaj naredi, potem jo podas kot parameter tej proceduri in bos tocno vedel, kdaj se je spremenila (sinhrono s programskim tokom). Ce samo potrebujes zacasno spremenljivko za cas, ko se procedura izvaja (in je po koncu izvajanja procedure ne rabis vec), potem jo definiras lokalno. |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Čet Maj 18, 2006 12:33 pm Naslov sporočila: |
|
|
Med globalno in in lokalno spremenljivko je ponekod (na primer delphi) razlika v inicializaciji. Globalne spremenljivke dobijo ob zagonu programa vrednost nič (0), če jim posebej ne določimo vrednosti. Lokalna spremenljivka pa ima lahko kakršnokoli vrednost (na primer 19037, ali 29001). Vrednost je to, kar je slučajno od prej ostalo v pomnilniku.
Jur |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|