En C, el Typedef Struct es una característica que permite definir tipos de datos personalizados y estructuras de datos para organizar y manipular información de manera más eficiente y legible. Esta característica utiliza la palabra clave typedef
junto con la palabra clave struct
para definir una estructura con nombre propio.
Una estructura (struct) es un tipo de dato que permite agrupar diferentes variables bajo un solo nombre. Cada variable dentro de la estructura se llama «miembro» y puede ser de diferentes tipos, como enteros, flotantes, arreglos u otras estructuras. La idea detrás de las estructuras es crear un tipo de dato personalizado que contenga varios campos relacionados.
Supongamos se desea representar la información de una persona con su nombre, edad y número de identificación. Primero, se define el Typedef Struct en el área de declaraciones globales del código de Arduino:
typedef struct {
char nombre[50]; // Cadena de caracteres para el nombre
int edad; // Entero para la edad
long int id; // Entero largo para el número de identificación
} Persona;
En este ejemplo, se ha creado un Typedef Struct llamado Persona
, que contiene tres miembros: nombre
(una cadena de caracteres de hasta 50 caracteres), edad
(un número entero) e id
(un número entero largo).
Ahora se puede usar esta definición de estructura para crear variables de tipo Persona
y acceder a sus miembros:
void setup() {
Serial.begin(9600);
// Crear una variable de tipo Persona
Persona persona1;
// Asignar valores a los miembros de la estructura
strcpy(persona1.nombre, "Juan");
persona1.edad = 30;
persona1.id = 1234567890;
// Mostrar la información en el monitor serial
Serial.print("Nombre: ");
Serial.println(persona1.nombre);
Serial.print("Edad: ");
Serial.println(persona1.edad);
Serial.print("ID: ");
Serial.println(persona1.id);
}
void loop() {
// Nada aquí
}
En este código de ejemplo, hemos creado una variable persona1
de tipo Persona
y luego hemos asignado valores a sus miembros. Finalmente, imprimimos la información en el monitor serial.
Una estructura proviene del lenguaje de programación C, pero también es compatible con C++ y, por lo tanto, con Arduino. Básicamente, lo que hace es permitirnos crear una nueva variable que es una colección de información asociada con algo, como un «botón» de Simon. Esto nos permite pasar y acceder a esta información desde una única referencia.