[Previous] [Up]
Go backward to Uso de typedef
Go up to Estructuras y Typedef

Estructuras

Las estructuras son un medio para reunir un grupo de datos que quiza sean de direrentes tipos. Para ejemplificar esto en forma sencilla, se definira una estructura que describa un naipe. Un naipe como el tres de pica tiene un valor en puntos (3) y otro segun la pinta (picas). Pueden declararse dos variables:

        int puntos;
        char pinta;
que retienen la informacion. La variable PUNTOS tomara valores del 1 al 13, para representar desde el "as" hasta el "rey"; y la variable PINTA tomara los valores 't', 'd', 'c', y 'p', para representar a las pintas (trebol, diamante, corazon y pica). Las estructuras permiten agrupar a las variables, por lo que
        struct naipe {
            int   puntos;
            char  pinta;
        };
creara el tipo de dato derivado STRUCT NAIPE, donde NAIPE es el nombre de la estructura. Asi, el nombre puede usarse para declarar variables de este tipo. La declaracion
        struct naipe  c1, c2;
asigna almacenamiento para los identificadores c1 y c2, que son de tipo STRUCT NAIPE. Los identificadores PINTA Y PUNTOS se consideran MIEMBROS de STRUCT NAIPE. Para tener acceso a los valores de los miembros, se empleara el operador mienbro de estructura " . ".

Se asignaran a c1 los valores que representan al tres de picas y a c2 los valores que representan al rey de diamantes.

        c1.puntos = 3;
        c1.pinta  = 'p';
        c2.puntos = 13;
        c2.pinta  = 'd';
Suele ser una buena practica de programacion asociar un nombre a un tipo de estructura, pues es conveniente tanto para las declaraciones futuras como para la documentacion. Cuando se usa TYPEDEF para nombrar a un tipo de estructura, el nombre no tiene importancia. Un ejemplo de esto es:
        typedef struct {
             float re;
             float im;
        } complex;
 
        complex  a, b, c[100];
El tipo COMPLEX sirve ahora en lugar del tipo de estructura. El programador obtiene un alto grado de modularidad y facilidad de transporte usando TYPEDEF para denominar dichos tipos derivados y almacenamiento de encabezamientos.

spy@inf.utfsm.cl

[Previous] [Up]