#include <stdio.h>

typedef struct {
   int dia, mes, año;
} fecha;

void imprime(fecha f) {
   printf("%d/%d/%d\n", f.dia, f.mes, f.año);
}

fecha dia_independencia( ) {
   fecha f = { 16, 9, 1810 };
   return f;
}

int main( ) {
   fecha f;
   f.dia = 5;
   f.mes = 8;
   f.año = 2025;
   imprime(f);

   fecha g = { 3, 10, 2023 };
   imprime(g);

   fecha h = g;         // un struct se puede copiar como si fuera una variable normal (se copia el contenido de las "cajitas" de adentro, cuyo nombre técnico es "variables miembro")
   imprime(h);

   fecha k = dia_independencia( );
   imprime(k);

   fecha arr[3] = {     // es posible declarar un arreglo de variables struct sin ningún problema
      { 1, 2, 2000 },
      { 3, 4, 2005 },
      { 5, 6, 2010 }
   };
   for (int i = 0; i < 3; ++i) {
      imprime(arr[i]);
   }
}
