PUB
– Referencia de Lenguaje Spin
Parámetros y Variables Locales
Los parámetros y variables locales son longs (cuatro bits). De hecho los parámetros son
realmente solo variables que se inicializan a los valores correspondientes especificados por el
llamador del método. Las variables locales, sin embargo, contienen datos aleatorios cada que
se llama al método.
Todos los parámetros se pasan en un método por valor, no por referencia, así cualquier
cambio a los parámetros en si no se reflejan fuera del método. Por ejemplo, si llamamos
MoveMotor
usando una variable
Pos := 250
MoveMotor(Pos, 100)
MoveMotor
Cuando el método
valor 100 en su parámetro
Speed
en cualquier momento pero el valor de
250.
Si una variable debe alterarse por una rutina, el llamador debe pasar la variable por
referencia; lo que significa que debe pasar la dirección de la variable en vez del valor de la
variable, y la rutina debe tratar ese parámetro como la dirección de la localidad de memoria
en la cual operar. La dirección de la variable, o otros símbolos de base registro pueden
recuperarse usando el operador Symbol Address, '
Pos := 250
MoveMotor(@Pos, 100)
EL llamador pasa la dirección de
MoveMotor
recibe en su parámetro
dirección es solo un numero, como cualquier otro, así que el método
designada para tratarlo como dirección, en vez de un valor. El método
debe usar algo como esto:
PosIndex := LONG[Position]
...para recuperar el valor de la variable
LONG[Position] := <some expresión>
...para modificar la variable
Pagina 188 · Manual Propeller v1.1
Pos
para el primer parámetro podría verse algo como esto:
se ejecuta, recibe el valor de
Speed
. Dentro del método
Pos
(el llamador de la variable) se mantiene en
@
Pos
para el primer parámetro a
Position
es la dirección de la variable de; llamador
Pos
del llamador y algo como:
Pos
del llamador en caso necesario
Pos
Position
en su
MoveMotor
, puede cambiar
'. Por ejemplo,
MoveMotor
MoveMotor
MoveMotor
parámetro, y el
Position
y
. Lo que
Pos
. La
debe ser
entonces