Las constantes; como sabemos, no cambian su valor en tiempo de ejecución. Son útiles para prevenir que nosotros mismos tengamos errores.
En el lenguaje de Arduino, que no es otra cosa que C y C++, podemos declarar constantes usando #define
y también const
. Cada una de ellas tiene su explicación.
Es un macro que se ejecuta antes de la compilación. Para explicarlo de la manera más sencilla, supongamos que definimos lo siguiente:
#define NUMERO 1
void setup(){
pinMode(NUMERO, OUTPUT);
digitalWrite(NUMERO, HIGH);
}
Antes de que el código sea compilado, se hará un buscar y remplazar, en donde las ocurrencias serán (valga la redundancia) remplazadas por el valor verdadero. Por lo que (no podemos verlo, pero así es), el programa de arriba se convertiría en lo siguiente:
void setup(){
pinMode(1, OUTPUT);
digitalWrite(1, HIGH);
}
Es decir, remplazó las constantes por el valor verdadero.
Para declarar una constante, usamos const seguido del tipo de la variable. Por ejemplo:
const int numero = 1;
Al compilar, esto no se remplaza. Queda así como está. Y si el compilador detecta que en algún momento de nuestro código queremos asignarle un nuevo valor nos arrojará un valor.
Obedecen el ámbito de las funciones. Es decir, podemos declarar dos constantes con el mismo nombre en diferentes funciones:
void funcionUno(){
const int edad = 18;
}
void otraFuncion(){
const int edad = 50;
}
Y podemos usarlas dentro de cada función sin que choquen. También tiene la ventaja de que tiene tipo, por lo que el compilador nos informará los errores que puede que estemos cometiendo.
const
también permite declarar arreglos, cosa que #define
no.
Finalmente, cabe mencionar que el uso de const
es recomendado en lugar de #define
según este artículo.
Personalmente utilizo #define
porque no trabajo en proyectos grandes, y las librerías que incluyo no colisionan con el nombre de mis constantes.
Sin embargo, es una buena práctica usar const
en lugar de #define
según el sitio oficial de Arduino. Y si ellos lo dicen, es porque así debería ser. Además, en la mayoría de casos tenemos memoria de sobra para los proyectos que hacemos, por lo que no tenemos que ahorrarla usando #define
.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios
Muy buena explicacion, gracias
Información clara, concisa i totalmente útil.
Muchas gracias por aportarla!
Gracias por sus comentarios. Saludos!
Excelente información, clara y al punto. Entendí bien la diferencia.
Muchas gracias
Me da gusto ayudar
Te invito a suscribirte a mi blog en la barra lateral derecha. Saludos.