Diferencia entre revisiones de «static»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
(Vea también)
Línea 80: Línea 80:
 
* [[volatile]]
 
* [[volatile]]
 
* [[const]]
 
* [[const]]
* [[defined]]
+
* [[include]] - <nowiki>(#)</nowiki>
* [[comentarios]] <nowiki>(//)</nowiki>
+
* [[defined]] - no user
 +
* [[Comentarios]] - <nowiki>(//)</nowiki>
  
 
== Referencias ==
 
== Referencias ==

Revisión del 20:36 27 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.

Nota: 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];
static variable = Pvalor;

Parámetros

tipo
tipo de dato. Puede ser char, byte; int, long, float, etc
Posibles formateadores
Tipo Subfijo Ejemplo
int ninguno 123
unsigned int U 123U
long L 123L
unsigned long UL 123UL
float F 1.23F
variable
nombre de la variable a declarar.
valor
valor a almacenar en el rango del tipo de dato.
Pvalor
valor a almacenar en el rango del tipo de dato con prefijo formateador.
Posibles formateadores
Base Prefijo Comentario Ejemplo
DEC ninguno Dígitos 0~9 123
HEX 0x dígitos 0~9 + Caracteres A~F 0x7B
OCT 0 digitos 0~7 0173
BIN B 0 o 1 B1110011

Retorno

Nada.

Advertencias

Nada.

Ejemplo

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

void setup(){
   Serial.begin(115200);
}
void loop(){
   static int posicion;
   int 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