next up previous contents
Next: Ponteiros Up: Tipos agregados e derivados Previous: Enumerações   Sumário


Definição de nomes de tipos

Embora C não permita a criação de novos tipos de dados, ela oferece uma facilidade para criar novos nomes para os tipos existentes, sejam eles básicos ou derivados. Este mecanismo, typedef, permite principalmente melhorar a facilidade de compreensão de programas.

A forma geral de uma definição de nome de tipo é

    typedef  tipo  novo_nome;

Por exemplo, os tipos de estruturas data e dados_pessoais definidos anteriormente poderiam ser associados a nomes de tipos Data e Pessoa respectivamente pelas declarações

    typedef struct data Data;
    typedef struct dados_pessoais Pessoa;

Com estas definições, as declarações do programa que apresenta a idade de pessoas poderiam ser reescritas como

    /*
     *  Exemplo calcula idade com definicao de nomes de tipos
     */
    /* Define estruturas e nomes de tipos */
    typedef enum sex {masculino, feminino} Sexo;

    typedef struct data {
                int dia;
                int mes;
                int ano;
            } Data;

    typedef struct dados_pessoais {
                char nome[40];
                Data nascimento;
                Sexo genero;
            } Pessoa;

    int main() {
        Data hoje;
        Pessoa aluno_pt;
        int idade;
        /* prototipos: */
        int calc_idade(Pessoa, Data);
        Data le_hoje();
        Pessoa le_aluno();
        ...
    }

Outros exemplos de uso de typedef são

    typedef unsigned int Tamanho;
    typedef enum {false=0, true} Boolean;



Ivan L. M. Ricarte 2003-02-14