Previous:Declaring identifiers Main Index Next:Identifier Name Collisions
Identifiers may be declared either global using #declare
or local using the #local
directive.
Those created by the #declare
directive are permanent in duration and global in scope. Once created, they are available throughout the scene and they are not released until all parsing is complete or until they are specifically released using #undef
. See "Destroying Identifiers".
Those created by the #local
directive are temporary in duration and local in scope. They temporarily override any identifiers with the same name. See "Identifier Name ".
If #local
is used inside a #macro
then the identifier is local to that macro. When the macro is invoked and the #local
directive is parsed, the identifier is created. It persists until the #end
directive of the macro is reached. At the #end
directive, the identifier is destroyed. Subsequent invocations of the macro create totally new identifiers.
Use of #local
within an include file but not in a macro, also creates a temporary identifier that is local to that include file. When the include file is included and the #local
directive is parsed, the identifier is created. It persists until the end of the include file is reached. At the end of file the identifier is destroyed. Subsequent inclusions of the file totally new identifiers.
Use of #local
in the main scene file (not in an include file and not in a macro) is identical to #declare
. For clarity sake you should not use #local
in a main file except in a macro.
There is currently no way to create permanent, yet local identifiers in POV-Ray.
Local identifiers may be specifically released early using #undef
but in general there is no need to do so. See "Destroying Identifiers".
Previous:Declaring identifiers Main Index Next:Identifier Name Collisions