hlmod.hu
https://hlmod.hu/

Define vs Const
https://hlmod.hu/viewtopic.php?f=10&t=22189
Oldal: 1 / 1

Szerző:  mforce [2015.09.13. 23:15 ]
Hozzászólás témája:  Define vs Const

Melyiket érdemesebb használni szövegek kiírásához?
Define vagy Const?

Olvastam millió fórumot, elvileg ugyanannyit eszik, kíváncsi vagyok a ti véleményetekre, melyiket érdemesebb használni hosszútávon.

Szerző:  Akosch:. [2015.09.14. 01:32 ]
Hozzászólás témája:  Re: Define vs Const

Én is nézelődtem ezzel kapcsolatban kb hasonló eredményekkel...

De amit megtudtam és ahol/ahogy én használom:

#define:

a, Ha minden igaz ezt az előfordító behelyettesíti, ezért nem is értem ez miért enne/eszik memóriát.
b, Sehogy se lehet változtatni az értékét.
c, Én akkor szoktam használni, ha másnak is kiadnám, ide töltöm fel, talán könnyebb hozzáértés nélkül megérteni, hogy hova írd mintha változóban lenne.
Illetve számokhoz pl
SMA Forráskód: [ Mindet kijelol ]
  1. #define MAX_PLAYERS 32


new const:

a, Ugyanúgy foglal memóriát, mint a többi sima változó, és úgy is működik, de definiáláskor értéket kell adni neki.
b, Pawnban nem változtatható, de más nyelvekben pointerek segítségével van rá lehetőség.
c, Szövegekhez mindig ezt használom( ahogy Maxi is írta nekem erre: constansban nem tárolunk számot) , főleg precache -hez, ciklusokkal könnyen végig mehetsz rajta.
pl:
SMA Forráskód: [ Mindet kijelol ]
  1. for( new i; i < sizeof( g_sModellek ); ++i )
  2. {
  3. precache_model( g_sModellek[ i ] );
  4. }


Valaki aki esetleg jobban ért hozzá az leírhatná, h tényleges mi hogyan merre.

Szerző:  Silent [2015.12.06. 05:36 ]
Hozzászólás témája:  Re: Define vs Const

Na ugyan azt nem értem, hogy konstansban miért ne lehetne számot tárolni, a többi valóban így működhet.
A "#define direktívával definiált" értékek hatásköre csak az adott fájl, ezért is találtam érdekesnek a mondatod. C#-ban pl nem is lehet konstans értéket definiálni vele, ott csak true-false alapon létezik.
Pl.:
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #define NAGYBETU
  3.  
  4. Class myclass()
  5. {
  6. void method()
  7. {
  8. #if (NAGYBETU)
  9. Console.Write("SZIA!");
  10. #else
  11. Console.Write("szia!");
  12. #endif
  13. }
  14. }
  15.  



A #define kulcsszót csak az előfordító használja, így futási időben ez már nincs is jelen.

#define SZAM 5
printmethod(SZAM);

---->

printmethod(5);

Valahogy így..

Szerző:  mforce [2015.12.06. 09:58 ]
Hozzászólás témája:  Re: Define vs Const

Már azóta kibeszéltük, hogy amxx specifikusan pontosan mi is a helyzet.
https://wiki.alliedmods.net/Optimizing_Plugins_(AMX_Mod_X_Scripting)#Local_Strings

Itt több felhasználásnál érdemesebb konstanst használni.

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/