Publi

Tamaños de variables en Arduino

Si estamos acostumbrados a programar para procesadores de 32 ó 64bits, tal vez creamos que en un Arduino podemos almacenar números extremadamente grandes. ¡ pues no ! Estamos ante procesadores sencillos, de 8bit, puede que sean demasiado… de los 80 (más grandes en los 80), pero dado lo pequeño que puede llegar a ser, puede valernos para fabricar cualquier gadget/utensilio/aparato… e incluso para aprender… que para eso estamos aquí.

Para ver los tamaños de las variables aquí presentes podemos hacer el siguiente programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Presentar en el serial el tamaño de una variable o un tipo
// de variable. Como macro es más rápido de implementar
#define VarSize(var) {              \
    Serial.print("Tam. "#var": ");      \
    Serial.println(sizeof(var));        \
  }

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

// Llamamos a VarSize con todos los tipos de variable básicos que podemos usar, para ver su tamaño.
void loop()
{
  VarSize(bool);
  VarSize(char);
  VarSize(byte);
  VarSize(long byte);
  VarSize(word);
  VarSize(long word);
  VarSize(int);
  VarSize(long);
  VarSize(long long);
  VarSize(float);
  VarSize(double);
  VarSize(long double);

  delay(100000);
}

Lo que en Arduino Diecimila, y otros modelos basados en Atmega168 devolverá:

Tam. bool: 1
Tam. char: 1
Tam. byte: 1
Tam. long byte: 4
Tam. word: 2
Tam. long word: 4
Tam. int: 2
Tam. long: 4
Tam. long long: 8
Tam. float: 4
Tam. double: 4
Tam. long double: 4

Aquí vemos que el tipo más grande son ¡ 8×8=64bit ! que no está nada mal, aunque dado el hecho de la limitada memoria de la que disponemos, es mejor no hacer reservas de memoria demasiado a la ligera.

También podría interesarte....

There are 2 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. Andrew Mark /
    Usando Google Chrome Google Chrome 119.0.0.0 en Windows Windows NT

    Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
    Ryan Gosling Coat Blade Runner

Leave a Reply