2020. július 28., kedd

New, public, Stock, static

kis segítség:

Bevezetőül:
Változót deklarálhatunk az alábbi kulcsszavak egyikével:
new, stock, public, static

Mindegyik változót hoz létre, de mindegyik kicsit eltér a másiktól, futási és/vagy fordítási különbségeket teremtve.
new: allokálja a memóriaterületet. Ha ez eljárásban történni, akkor az eljárás végén törlődik.
stock: hasonló a newhoz, a különbség fordítás időben történik: Amennyiben a változó nincs használva sehol sem, akkor a fordító nem építi bele a p-kódba. (kisebb memóriahasználatot vonva maga után, ami jó), s ezzel el tudjátok kerülni a variable is unused warningot.
public: new + az absztrakt gépe felküldi a változó nevét, s így az más pluginból elérhetővé válik (szerkeszthető, módosítható). Jó dolog, de inkább a natív az elterjedt, mivel az biztosít valamiféle interface-t, protokollt, s így szabályok is adhatóak a módosításához stb.
static: mint a new, de ha eljárásban definiálod, nem törlődik a memóriában, hanem ott marad. (Allokálási idő nem lesz, csak egyszer foglalja le, s az értékét is megtartja)

Továbbá tisztázzuk, hogy vannak
1) globális változók és
2) lokális változók

( Általában az okos, hozzáértő scriptelek (itt nem sok van, hehe :P) a globális változókat egy helyre gyűjtik, g_ pefixel (vagy simán g prefixel) ellátva, hogy tudják, ez elérhető bárhonnan, hisz a globális területen lett definiálva.)

A globális változók mindenhol elérhetőek (tehát mindig léteznek), így felesleges is staticcal deklarálni, mivel azok elérhetőek, tartalmukkal együtt.
A lokális változók azoka változók, amiket eljárásokban deklarálunk. Ezek , az eljárás lefutása végén eltűnnek a memóriából.
DE ha az eljárásban staticcal hozol létre változót, az nem törlődik ki.


Metal tollából a hlmod.hu oldalról

Nincsenek megjegyzések:

Megjegyzés küldése

[ZP] Antidote

 /***************************************************************************\             =====================================            ...