Publicado el 1 comentario

La diferencia entre struct y typedef struct.

En lenguaje C y C++, una estructura (struct) es un tipo de dato que te permite combinar diferentes variables de tipos distintos en una sola entidad. Por ejemplo, puedes tener una estructura llamada «Punto» que almacene las coordenadas x e y.

Ejemplo de estructura:

struct Punto {
    int x;
    int y;
};

Luego, para usar esta estructura y declarar variables de tipo «Punto», normalmente deberías hacerlo así:

struct Punto miPunto;
miPunto.x = 10;
miPunto.y = 5;

La palabra clave struct debe ir antes del nombre de la estructura cada vez que declares una variable.

Sin embargo, si usas «typedef struct», puedes crear un nuevo nombre para esta estructura. Esto te permite omitir la palabra clave struct al declarar variables de esa estructura.

Ejemplo con «typedef struct»:

typedef struct {
    int x;
    int y;
} Punto;

Punto miPunto;
miPunto.x = 7;
miPunto.y = 3;

La diferencia entre «struct» y «typedef struct» es cómo declaras variables de ese tipo de estructura. Con «typedef struct», puedes crear un alias para la estructura y usar ese alias directamente sin necesidad de escribir la palabra struct.

Publicado el 3 comentarios

Typedef Struct

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:

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.