User manual
mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
193
Visibility
The visibility of an identier is that region of the program source code from which legal access to the identier’s
associated object can be made.
Scope and visibility usually coincide, though there are circumstances under which an object becomes temporarily
hidden by the appearance of a duplicate identier, i.e. the object still exists but the original identier cannot be used to
access it until the scope of the duplicate identier is ended.
Technically, visibility cannot exceed scope, but scope can exceed visibility.
Name Spaces
Name space is a scope within which an identier must be unique. The mikroBasic PRO for dsPIC30/33 and PIC24 uses
two distinct categories of identiers:
1. Global variables are visible throughout the whole unit, from the place of declaration. Also. they can be
seen in other units, if they are declared above the Implementation section.
2. Local variables, parameters, types, function results - must be unique within the block in which they are
declared.
For example:
dim level as byte
sub procedure control(dim sens as byte)
dim location as byte
location = 1
sens = location
level = 123
end sub
sub procedure temperature
location = 0 ‘ ILLEGAL
sens = 23 ‘ ILLEGAL: redenition of sens
level = 95
end sub
Place of declaration Scope
Identier is declared in the declaration section of
the main module, out of any function or procedure
Scope extends from the point where it is declared to the end of the current
le, including all routines enclosed within that scope. These identiers have
a le scope and are referred to as globals.
Identier is declared in the function or procedure Scope extends from the point where it is declared to the end of the current
routine. These identiers are referred to as locals.
Identier is declared in the interface section of the
module
Scope extends the interface section of a module from the point where it
is declared to the end of the module, and to any other module or program
that uses that module. The only exception are symbols which have a scope
limited to the le in which they are declared.
Identier is declared in the implementation section of
the module, but not within any function or procedure
Scope extends from the point where it is declared to the end of the module.
The identier is available to any function or procedure in the module.