Diferencia entre revisiones de «static»

De ArduWiki
Saltar a: navegación, buscar
(Sintaxis)
Línea 8: Línea 8:
 
static tipo variable [= valor];
 
static tipo variable [= valor];
 
</pre>
 
</pre>
 +
 +
== Parámetros ==
 +
;tipo: tipo de dato. Puede ser [[char]], [[byte]]; [[int]], [[long]], [[float]], etc
 +
;variable: nombre de la variable a declarar
 +
;valor: Valor acorde con el tipo elegido.
 +
 +
== Retorno ==
 +
Nada.
  
 
== Advertencias ==
 
== Advertencias ==
Línea 14: Línea 22:
 
== Ejemplo ==
 
== Ejemplo ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
const byte alto 20
+
const byte alto = 20;
const byte bajo -20
+
const byte bajo = -20;
 
const byte paso = 5;    //Tamaño de paso
 
const byte paso = 5;    //Tamaño de paso
  
Línea 29: Línea 37:
  
 
int camino(byte mover){
 
int camino(byte mover){
   posicion = posicion + (random(-mover, mover + 1));
+
   posicion += random(-mover, mover + 1);
 
   if (posicion < bajo){          //Comprueba los límites alto y bajo
 
   if (posicion < bajo){          //Comprueba los límites alto y bajo
 
       posicion = alto;            //Refleja el número de vuelta en dirección negativa
 
       posicion = alto;            //Refleja el número de vuelta en dirección negativa
Línea 42: Línea 50:
 
* [[volatile]]
 
* [[volatile]]
 
* [[const]]
 
* [[const]]
 +
 +
== Referencias ==
 +
* [https://www.arduino.cc/reference/en/language/variables/variable-scope--qualifiers/static/ Guia de referencia]]
  
 
[[Category:Variables]]
 
[[Category:Variables]]

Revisión del 17:25 17 jul 2018

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.

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

Sintaxis

static tipo variable [= valor];

Parámetros

tipo
tipo de dato. Puede ser char, byte; int, long, float, etc
variable
nombre de la variable a declarar
valor
Valor acorde con el tipo elegido.

Retorno

Nada.

Advertencias

Nada.

Ejemplo

const byte alto = 20;
const byte bajo = -20;
const byte paso = 5;     //Tamaño de paso

void setup(){
   Serial.begin(115200);
}
void loop(){
   static int posicion;
   hoy = camino(paso);
   Serial.println(hoy);
   delay(10);
}

int camino(byte mover){
   posicion += random(-mover, mover + 1);
   if (posicion < bajo){           //Comprueba los límites alto y bajo
      posicion = alto;             //Refleja el número de vuelta en dirección negativa
   }else if(posicion > alto){
      posicion = bajo;             //Refleja el número de vuelta en dirección positiva
   }
  return posicion;
}

Vea también

Referencias