|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Pon Feb 28, 2005 11:19 am Naslov sporočila: hip hip hip strašni trik! |
|
|
To je za tiste, ki smo vedno na knap z ram-spominom.
Se vam je že zgodilo, da ste neke spremenljivke uporabljali zelo kratek čas v programu? In vam je bilo škoda bajta zanjo? Meni se to kar naprej dogaja. Bom pojasnil na primeru.
Vzemimo, da imamo polje spremenljivk x in indeks i kot sledi
Koda: | dim x(16) as byte
dim i as byte |
in sedaj bi radi teh 16 znakov dali na lcd recimo tako:
Koda: | for i = 1 to 16
lcd chr(x(i))
next |
ee, pa to ne gre, ker, če že imate v lcd funkcijo chr, argument funkcije ne sme biti indeksirana spremenljivka. Potrebno je definirari novo spremenljivko in zadevo razvolati tako:
Koda: | dim j as byte 'definiramo še eno bajt spremenljivko
for j=1 to 16
j = x(i)
lcd chr(j)
next |
To seveda gre, a smo porabili dodaten bajt, dodatno spremenljivko.
Gre pa tudi tako:
Koda: | for i = 1 to 16
push {i} ' spravimo staro vrednost i-a na stack
i = x(i) ' uporabimo isto spremenljivko
lcd chr(i)
pop {i} ' spravimo staro vrednost nazaj v i
next |
Seveda bo nekdo takoj ugotovil, saj tudi s push-pop trikom porabimo en bajt ,samo da je tokrat v skladu (stack-u). To je seveda res, ampak, če se tega trika poslužimo večkrat na n različnih delih našega programa, smo prišparali (n-1) bajt, kajti vsi ti triki uporabijo isti bajt v skladu. _________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
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 You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|