#pragma dynamic

Započeo PekiBrat
12. Maj 2018.
2,184
pregleda
13
postova
PekiBrat
2
Street Runner
12. Maj 2018.
Pozdrav, za sta sluzi #pragma dynamic (neki broj), imam to u GameModu(SA mod)?
Rax_King
5
Godfather
12. Maj 2018.
Postavlja "velicinu" stacka dinamicno na (neki broj).
Bez toga bi (ukoliko koristis neke nepotrebne arraye (ex. velike stringove), nepotrebne varijable itd.) trebao dobiti debug info:

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Header size:          x bytes
Code size:          x bytes
Data size:        x bytes
Stack/heap size:      x bytes; estimated max. usage: unknown, due to recursion
Total requirements:x bytes


Ovaj output dobijas i sa parametrom '-d(X)' kada kompajlas tako da se ne zbunis nekada je namjerno upaljen debug.
Uglavnom ako dobijes ovu poruku bez '-d' parametra pri kompajlu, potrudi se da smanjis arraye (jer je to najlaksi nacin da spustis memoriju skripte.
PekiBrat
2
Street Runner
12. Maj 2018.
Hvala, kad kompajlam imam to, kako da optimiujem to? Moze neki primer za to smanjivanje array-a, vidjao sam neke sitne debugove za array 4 nesti u logu
Nodze
8
Crime Lord
12. Maj 2018.
#Kako koristit Pragmu
Danas ću vam reci par stvari o pragma,kako koristiti #pragma. Koristan je direktiva koja će popraviti širok spektar upozorenja kompajlera.

Upotreba

#pragma je direktiva koja se koristi za promjenu postavki kompajlera. To nije fiksator upozorenja.

Uvijek vidim ljude koji savjetuju druge da koriste #pragmu da uklone upozorenja iz svog kompajla sta vec. Upozorenja su samo utišana - ne magično nestaju.

Umesto toga, naučićete kako da ga izbjegnete. Upozorenja nikada ne bi trebale biti tišine - trebalo bi ih ispraviti na pravi način!

#pragma tabsize
Ovo postavlja veličinu kartice, koja je podrazumevano podešena na 4. Kada ga podesite na nulu, u osnovi dopuštate nečitljivu šifru u vašoj skripti.

Nikada ne bi trebalo da postavljate veličinu tabulatora. Zašto želite da ga postavite? Naučite da pravilno unesete svoj kôd i nećete imati problem.

#pragma dynamic
Ovaj kod:

#pragma dinamička 1000000

Dinamički postavlja veličinu stega. Bez toga možete nešto dobiti uz linije:

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Header size:          19036 bytes
Code size:          1327124 bytes
Data size:        43915204 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:45277748 bytes

Ovo upozorenje je izazvano retkim nizovima , nepotrebnim veličinama žice i korištenjem dosta podataka.

Pitanje: da li stvarno treba da koristite cijeli taj prostor? Zašto je za HouseInfo dodeljeno 2.000 slotova, kada koristite samo 100 slotova? Postoji mnogo načina da se smanji korištenje podataka.

#define MAX_HOUSES 1000
#define MAX_FURNITURE 100 // Po kući.

novi FurnitureInfo ;

Taj niz je 400 kilobajta velik, ne uključujući podatke popisivača. To nije ništa u poređenju sa današnjim standardima, ali je i dalje važno, i postoji način da se to smanji.
Recimo da imamo prosečno 40 komada namještaja po kući. Mi ga lako možemo smanjiti na:

novi FurnitureInfo [MAX_HOUSES * 40] ;

Naravno, svaka kuća neće sadržati 40 komada namještaja. Veličina ovog polja sada iznosi 40 kilobajta, za razliku od 400 kilobajta iz druge.
ZaključakTL; DR - Ne koristite #pragma da biste popravili upozorenja kompajlera.
Druge verzije Pawno-a koriste različite postavke kompajlera. SA-MP koristi svoja podešavanja, tako da je važno da se prilagodite.

TOLIKO OD MENE, MISLIM DA SAM OBJASNIO NEKE STVARI.

Vlasnik Zajednice: Ghost Town since 2016

Vlasnik Zajednice : Spotify Ogc since 2018

Nodze
8
Crime Lord
12. Maj 2018.
Nodze wrote on May 12, 2018, 1:18 pm:
#Kako koristit Pragmu
Danas ću vam reci par stvari o pragma,kako koristiti #pragma. Koristan je direktiva koja će popraviti širok spektar upozorenja kompajlera.

Upotreba

#pragma je direktiva koja se koristi za promjenu postavki kompajlera. To nije fiksator upozorenja.

Uvijek vidim ljude koji savjetuju druge da koriste #pragmu da uklone upozorenja iz svog kompajla sta vec. Upozorenja su samo utišana - ne magično nestaju.

Umesto toga, naučićete kako da ga izbjegnete. Upozorenja nikada ne bi trebale biti tišine - trebalo bi ih ispraviti na pravi način!

#pragma tabsize
Ovo postavlja veličinu kartice, koja je podrazumevano podešena na 4. Kada ga podesite na nulu, u osnovi dopuštate nečitljivu šifru u vašoj skripti.

Nikada ne bi trebalo da postavljate veličinu tabulatora. Zašto želite da ga postavite? Naučite da pravilno unesete svoj kôd i nećete imati problem.

#pragma dynamic
Ovaj kod:

#pragma dinamička 1000000

Dinamički postavlja veličinu stega. Bez toga možete nešto dobiti uz linije:

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Header size:          19036 bytes
Code size:          1327124 bytes
Data size:        43915204 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:45277748 bytes

Ovo upozorenje je izazvano retkim nizovima , nepotrebnim veličinama žice i korištenjem dosta podataka.

Pitanje: da li stvarno treba da koristite cijeli taj prostor? Zašto je za HouseInfo dodeljeno 2.000 slotova, kada koristite samo 100 slotova? Postoji mnogo načina da se smanji korištenje podataka.

#define MAX_HOUSES 1000
#define MAX_FURNITURE 100 // Po kući.

novi FurnitureInfo ;

Taj niz je 400 kilobajta velik, ne uključujući podatke popisivača. To nije ništa u poređenju sa današnjim standardima, ali je i dalje važno, i postoji način da se to smanji.
Recimo da imamo prosečno 40 komada namještaja po kući. Mi ga lako možemo smanjiti na:

novi FurnitureInfo [MAX_HOUSES * 40] ;

Naravno, svaka kuća neće sadržati 40 komada namještaja. Veličina ovog polja sada iznosi 40 kilobajta, za razliku od 400 kilobajta iz druge.
ZaključakTL; DR - Ne koristite #pragma da biste popravili upozorenja kompajlera.
Druge verzije Pawno-a koriste različite postavke kompajlera. SA-MP koristi svoja podešavanja, tako da je važno da se prilagodite.

TOLIKO OD MENE, MISLIM DA SAM OBJASNIO NEKE STVARI.

Jos da dodam
#pragma nije napravljen samo da sakrijete upozorenja. Takođe može biti veoma korisno za druge stvari (kao što su ctrlchar, pack, codepage ili čak amxram).

Na kraju, debug poruke nisu zapravo upozorenja, ali, kao što sam rekao, debug poruke. Siguran sam da neću ništa naučiti u svom postu - pogotovo ovde - ali možete omogućiti ovakve poruke u svakoj kompilaciji koju obrađujete kompilacijom -d2 ili -d3 (pomoću pawno-a, kreirajući datoteku pawn.cfg i zapisivanje traženih opcija kompajliranja

Vlasnik Zajednice: Ghost Town since 2016

Vlasnik Zajednice : Spotify Ogc since 2018

PekiBrat
2
Street Runner
12. Maj 2018.
Hvala, a sta ce se desiti ako obrisem to iz moda?
Rax_King
5
Godfather
12. Maj 2018.
Vrv je stavleno zbog stack size jer je pojeban, optimizuj skriptu...
PekiBrat
2
Street Runner
12. Maj 2018.
Okej, a sta ce se desiti ako obrisem to?
Nodze
8
Crime Lord
12. Maj 2018.
Izbacit Ce ti mnogo errora eto sta Ce bit, optimizmu skriptu kako je @ksunder rekao

Vlasnik Zajednice: Ghost Town since 2016

Vlasnik Zajednice : Spotify Ogc since 2018

PekiBrat
2
Street Runner
12. Maj 2018.
Nije izbacio ni jedan error kad sm skinuo
PekiBrat
2
Street Runner
13. Maj 2018.
Bump, zna neko?
Rax_King
5
Godfather
14. Maj 2018.
Onda nemas problema sa stack/heap sizeom
PekiBrat
2
Street Runner
15. Maj 2018.
Hvala puno, lock

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha