A ver... creo que no me he explicado lo suficiente...
Si tenemos la definición de la siguiente estructura:
struct Ventana {
char Nombre[20];
int color_fondo;
struct Tipo_Punto posicion;
}
...que, por ejemplo, nos podría servir, para controlar ventanas...
en esta estructura, almacenamos el nombre de la ventana (con un máximo de 20 caracteres), el color con el que pintaremos el fondo, y su posición en pantalla.
Si tenemos que crear dos ventanas, lo haríamos de la siguiente forma:
struct Ventana v_1, v_2;
strcpy(v_1.Nombre, "Ventana 1");
v_1.color_fondo = 1;
v_1.posicion.x = 10;
v_1.posicion.y = 20;
strcpy(v_2.Nombre, "Segunda ventana");
v_2.color_fondo = 2;
v_2.posicion.x = 30;
v_2.posicion.y = 40;
como verás, es mucho más claro que si utilizamos "variables sueltas":
char Nombre1[20], Nombre2[20];
int color_fondo1, color_fondo2;
struct Tipo_Punto posicion1, posicion2;
strcpy(Nombre1, "Ventana 1");
color_fondo1 = 1;
posicion1.x = 10;
posicion1.y = 20;
strcpy(Nombre2, "Segunda ventana");
color_fondo2 = 2;
posicion2.x = 30;
posicion2.y = 40;
... si en algún lugar del código queremos cambiar el color de fondo de la ventana 2, lo haríamos así:
v_2.color_fondo = 8;
de la otra forma:
color_fondo2 = 8
El utilizar estructuras nos ayuda a no perder el norte cuando el programa crece. Piensa siempre, que dentro de un tiempo, tendrás que revisar el código... utilizando estructuras, será más fácil hacerlo.
Cuando el código empieza a crecer, (y te hablo de miles de líneas), el utilizar estructuras te ayudará mucho.
En C, puedes complicar las cosas tanto como quieras, pero siempre es preciso mantener un orden para no volverte loco.
Además, escribes menos (eso es importante, al menos para mí)
Un saludo.