typedef
C permite definir sinónimos para los tipos de datos mediante
el operador typedef
y la siguiente sintaxis:
typedef tipo_de_datos_ya_definido sinónimo
Por ejemplo, la siguiente línea define entero
como tipo sinónimo de int
.
typedef int entero
Este operador se usa con frecuencia para abreviar los
nombres de las estructuras de datos. El nombre del tipo de datos de una
estructura es struct
seguido de su nombre. Con
typedef
se puede definir un sinónimo más compacto tal y como se
muestra en el siguiente ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #define SIZE_FIRST 100 #define SIZE_LAST 200 #define NUM_CONTACTS 100 /* Definición de la estructura */ struct contact_information { char firstname[SIZE_FIRST]; char lastname[SIZE_LAST]; unsigned int homephone; unsigned int mobilephone; }; /* Declaración de variable */ struct contact_information person2; /* Definición del sinónimo */ typedef struct contact_information contact_info; /* Declaración utilizando el sinónimo */ contact_info person1, contacts[NUM_CONTACTS]; |
La línea 16 define contact_info
como sinónimo
de la estructura. La linea 18 utiliza este sinónimo para declarar dos
variables más de este tipo. La definición de una estructura y un sinónimo se
pueden combinar en un único bloque tal y como se muestra en el siguiente
ejemplo, aunque no es aconsejable, por legibilidad:
/* Definición de la estructura y su sinónimo */
typedef struct contact_information
{
char firstname[SIZE_FIRST];
char lastname[SIZE_LAST];
unsigned int homephone;
unsigned int mobilephone;
} contact_info;