static

Descripción

La palabra clave static se usa para crear variables que solo son visibles dentro de una función. Sin embargo a diferencia de las variables locales que se crean y destruyen cada vez que se invoca una función, las variables estatic persisten más allá de la llamada a la función, preservan sus datos entre llamadas a funciones.

Las variables declaradas como static sólo se crean e inicializan la primera vez que una función se llama.

Ejemplo

/* Paseo aleatorio Paul Badger 2007 Paseo aleatorio se pasea arriba y abajo al azar entre dos puntos finales. La medida máxima en un bucle se rige por Una variable estática se mueve hacia arriba y hacia abajo una cantidad aleatoria el parámetro "stepsize" (tamaño del paso). Esta técnica también se conoce como "ruido rosa" y "caminar borracho". */ #define randomWalkLowRange -20 #define randomWalkHighRange 20 int stepsize; int thisTime; void setup() { Serial.begin(9600); } void loop() { // comprueba la función randomWalk stepsize = 5; thisTime = randomWalk(stepsize); Serial.println(thisTime); delay(10); } int randomWalk(int moveSize) { static int place; // variable para almacenar el valor de random walk - declarada static ya almacenada // valores entre llamadas a funciones, pero otras funciones no pueden cambiar su valor place = place + (random(-moveSize, moveSize + 1)); if (place < randomWalkLowRange) { // comprueba los límites alto y bajo place = randomWalkLowRange + (randomWalkLowRange - place); // refleja el número de vuelta en dirección positiva } else if (place > randomWalkHighRange) { place = randomWalkHighRange - (place - randomWalkHighRange); // refleja el número de vuelta en dirección negativa } return place; }

Ver También

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.