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.
Pingback: Bitacoras.com /