Page 143

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

1 2

2 Estructuras de datos en C: vectores est´aticos y registros

#define LONTITULO 80 #define LONINTERPRETE 40

3 4 5 6 7

typedef struct { int minutos; int segundos; } TipoTiempo ;

8 9 10 11 12 13

typedef struct { char titulo[LONTITULO+1]; char autor [LONINTERPRETE+1]; TipoTiempo duracion; } TipoCancion ;

14 15 16 17 18 19 20 21 22

typedef struct { char titulo[LONTITULO+1]; char interprete[LONINTERPRETE+1]; TipoTiempo duracion; int anyo; TipoCancion cancion[MAXCANCIONES]; // Vector de canciones. int canciones; // N´ umero de canciones que realmente hay. } TipoCompactDisc ;

23 24 25 26 27

typedef struct { TipoCompactDisc cd [MAXDISCOS]; int cds; } TipoColeccion ;

28 29 30 31 32

int main(void) { TipoColeccion mis_cds; ...

Observa que, sistem´ aticamente, hemos utilizado iniciales may´ usculas para los nombres de tipos de datos (definidos con typedef y struct o s´olo con struct). Es un buen convenio para no confundir variables con tipos. Te recomendamos que hagas lo mismo o, en su defecto, que adoptes cualquier otro criterio, pero que sea coherente. El renombramiento de tipos no s´ olo sirve para eliminar la molesta palabra clave struct, tambi´en permite dise˜ nar programas m´ as legibles y en los que resulta m´as f´acil cambiar tipos globalmente. Imagina que en un programa nuestro representamos la edad de una persona con un valor entre 0 y 127 (un char). Una variable edad se declarar´ıa as´ı: char edad ;

No es muy elegante: una edad no es un car´acter, sino un n´ umero. Si definimos un ((nuevo)) tipo, el programa es m´ as legible: typedef char TipoEdad; TipoEdad edad ;

Es m´as, si m´ as adelante deseamos cambiar el tipo char por int, s´olo hemos de cambiar la l´ınea que empieza por typedef , aunque hayamos definido decenas de variables del tipo TipoEdad: typedef int TipoEdad; TipoEdad edad ;

Introducci´ on a la Programaci´ on con C

137

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement