hlmod.hu https://hlmod.hu/ |
|
Static Vs New https://hlmod.hu/viewtopic.php?f=10&t=9736 |
Oldal: 1 / 1 |
Szerző: | Vinnice [ 2013.07.28. 08:42 ] |
Hozzászólás témája: | Static Vs New |
Sziasztok! Azt szertném kérdezni ,hogy mi a különbség a SMA Forráskód: [ Mindet kijelol ]
SMA Forráskód: [ Mindet kijelol ]
Mikor melyiket kell használni? Én azt olvastam ,hogy a static az kevesebb cpu-t eszik, de gondolom nem lehet mindig csak static-kot használni egy pluginban. Válaszokat előre is köszönöm. |
Szerző: | Metal [ 2013.07.29. 14:32 ] |
Hozzászólás témája: | Re: Static Vs New |
Üdv a "kevesebb cpu" érdekes kifejezés, bár valóban "jobb" ha jó helyen használják. 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 ) 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. newra és staticra mutatok egy egyszerű példascriptet. Tesztelni nem teszteltem, csak szemléltetni akarom a kommentekben (isten ments, hogy valaki ezt feltegye valahova.... de ha vállalja a körberöhögést, felőlem ), mikor "mi történik" a változóval SMA Forráskód: [ Mindet kijelol ]
|
Szerző: | Vinnice [ 2013.07.29. 15:03 ] |
Hozzászólás témája: | Re: Static Vs New |
Még egy kérdés. Ezt lehet így is vagy csak a new operátorral? SMA Forráskód: [ Mindet kijelol ]
|
Szerző: | JoGoBeLLa [ 2013.07.29. 15:05 ] |
Hozzászólás témája: | Re: Static Vs New |
Vinnice írta: Még egy kérdés. Ezt lehet így is vagy csak a new operátorral? SMA Forráskód: [ Mindet kijelol ]
Szerintem csak new. operátorral. |
Szerző: | kiki [ 2013.07.29. 15:42 ] |
Hozzászólás témája: | Re: Static Vs New |
Kikell próbálni, biztos lehet. De boolt inkább globálisan szoktuk többségben használni. |
Szerző: | Metal [ 2013.07.29. 19:47 ] |
Hozzászólás témája: | Re: Static Vs New |
WRONG WRONMG és WRONG Ahogy írtam, változókat ezekkel a kulcsszavakkal lehet deklarálni: new, static, stock, public A bool az egy TAG, ami osztályozza a változót. Tehát ez így helyes: Kód: static bool:g_isAlive[33] változódeklaráció szintaxisa: <new, stock, static, public> [TAG:]<változó> Olyan h általában globálisan használjuk, az irreleváns... tudsz olyan plugint is írni, amihez nincsenek globális változók, sőt, olyat is, amiben a bool változók mind csak eljárásokban vannak. Ez az állítás így értelmetlen, logikátlan, számomra feldolgozhatatlan kijelentés... |
Szerző: | Silent [ 2013.07.29. 20:36 ] |
Hozzászólás témája: | Re: Static Vs New |
Metal :DDDDDDDD NEMVAGYOKIDEGEES WRONGWRONG :DDDD Egyébként a new az közelsem operátor.. +, -, *, &, :, =, ||, <, >, ! ezek operátorok.. |
Oldal: 1 / 1 | Minden időpont UTC+02:00 időzóna szerinti |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |