Reference   Language (extended) | Libraries | Comparison | Changes

Static

La palabra reservada static se utiliza para crear variables estáticas, estas variables tienen la peculiaridad de que no se crean y se destruyen cada vez que se llama al bloque de código en el que está definidas, sino que su valor se guarda para las sucesivas llamadas.

Las variables que se declaran como estáticas sólo se crearan e inicializarán la primera vez que se ejecute el bloque de código en el que están contenidas.

Ejemplo



/* RandomWalk
* Paul Badger 2007
* RandomWalk salta aleatoriamente entre 2 puntos de salida  
* El máximo está controlado por el parámetro "stepsize".
* Una variable estática es incrementada o decrementada aleatoriamente.
* Esta técnica es conocida como "pink noise" y "drunken walk".
*/

#define randomWalkLowRange -20
#define randomWalkHighRange 20
int stepsize;

int thisTime;
int total;

void setup()
{
  Serial.begin(9600);
}

void loop()
{        //  lanzamos la función randomWalk
  stepsize = 5;
  thisTime = randomWalk(stepsize);
  Serial.println(thisTime);
   delay(10);
}

int randomWalk(int moveSize){
  static int  place;     // variable estática  los valores se conservaron entre las siguientes
                         // llamadas a la función. Ninguna otra función puede cambiar su valor

  place = place + (random(-moveSize, moveSize + 1));

  if (place < randomWalkLowRange){                    // comprueba el límite mayor y el menor
    place = place + (randomWalkLowRange - place);     // modifica el número a una dirección positiva 
  }
  else if(place > randomWalkHighRange){
    place = place - (place - randomWalkHighRange);     // modifica el número a una dirección negativa
  }

  return place;
}


Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share