Difference between revisions of "LSL Constants vs Globals"
Jump to navigation
Jump to search
m |
(Without explicit typecasts, the demo code doesn't compile...) |
||
Line 28: | Line 28: | ||
default { | default { | ||
state_entry() { | state_entry() { | ||
llOwnerSay(llGetFreeMemory()); | llOwnerSay((string) llGetFreeMemory()); | ||
} | } | ||
}</lsl> | }</lsl> | ||
Line 43: | Line 43: | ||
default { | default { | ||
state_entry() { | state_entry() { | ||
llOwnerSay(llGetFreeMemory()); | llOwnerSay((string) llGetFreeMemory()); | ||
} | } | ||
}</lsl> | }</lsl> | ||
|} | |} |
Revision as of 21:31, 23 September 2008
There are some advantages in using global variables over the string and key constants, it's faster and uses less bytecode when it is longer then 3 characters and it used more then twice but it uses more bytecode when it is shorter then 3 characters or it used once. This is easily demonstrated by running the scripts in Figure 1.
Pros
- Faster
- Uses less bytecode when it is longer then 3 characters and it used more then twice.
Cons
- User can accidentally change the value.
- Uses more bytecode when it is shorter then 3 characters or it used once.
Constant | Global |
---|---|
<lsl> dead(){ key a = NULL_KEY; key b = NULL_KEY; key c = NULL_KEY; key d = NULL_KEY; } default { state_entry() { llOwnerSay((string) llGetFreeMemory()); } }</lsl> |
<lsl>key null_key = NULL_KEY; dead(){ key a = null_key; key b = null_key; key c = null_key; key d = null_key; } default { state_entry() { llOwnerSay((string) llGetFreeMemory()); } }</lsl> |