====== Definição de tipos ====== A palavra reservada ''typedef'' permite definir (ou redefinir) um tipo de dado. Ela pode ser aplicada a qualquer tipo da linguagem C, mas é particularmente útil com //structs//, pois simplifica a declaração de variáveis e parâmetros de tipo //struct//. Forma geral: typedef ; Exemplo com escalares: typedef unsigned long int uint32_t ; // "uint32_t" equivale a "unsigned long int" uint32_t a, b ; // aloca duas variáveis do tipo uint32_t Exemplo com //structs//: struct pac_t { char nome[100] ; short idade ; short quarto ; } ; typedef struct pac_t paciente_t ; // struct pac_t -> paciente_t // declaração e alocação paciente_t pac1, pac2 ; Ou redefinindo o próprio tipo ''paciente_t'' ; struct paciente_t { char nome[100] ; short idade ; short quarto ; } ; typedef struct paciente_t paciente_t ; // declaração e alocação paciente_t pac1, pac2 ; Ou ainda mais "enxuto": typedef struct paciente_t { char nome[100] ; short idade ; short quarto ; } paciente_t ; // declaração/alocação paciente_t pac1, pac2 ; O uso de ''typedef'' com structs é **desaconselhado** por alguns guias de estilo de código em C, por "esconder" o fato que um determinado tipo é uma ''struct'', o que pode tornar mais difícil a leitura do código.