next up previous contents
Next: Definição de nomes de Up: Tipos agregados e derivados Previous: Uniões   Sumário


Enumerações

Uma outra forma de tipo composto em C é a enumeração. Usualmente, faz parte do processo de desenvolvimento de um programa associar códigos númericos a variáveis que podem assumir um único valor dentre um conjunto finito de opções. O tipo enumeração permite associar nomes descritivos a tais conjuntos de valores numéricos.

Considere uma extensão da estrutura dados_pessoais apresentada acima que incorporasse também o sexo da pessoa. Há dois estados possíveis para uma variável deste tipo: ela pode assumir o valor masculino ou o valor feminino. Uma enumeração que poderia representar este tipo de informação seria

    enum sex { masculino, feminino };

Uma variável deste tipo de enumeração poderia ser então incorporada na estrutura apresentada a seguir, dados_pessoais,

    struct dados_pessoais {
        char nome[40];
        struct data nascimento;
        enum sex genero;
    };

O seguinte trecho de programa ilustra como os nomes descritivos definidos em enumerações são utilizados como valores:

    int calc_idade(struct dados_pessoais pessoa,
                   struct data hoje) {
        int idade;
        
        idade = hoje.ano - pessoa.nascimento.ano;
        if (pessoa.genero == feminino)
            idade -= 10;

        return(idade);
    }

Internamente, o compilador designa o valor 0 para o primeiro símbolo da enumeração, e incrementa de um o valor associado a cada símbolo na seqüência. Isto pode ser modificado se o programador quiser através de atribuição explícita de um valor inteiro a um símbolo, como em

    enum cedula {
        beijaflor = 1,
        garca = 5,
        arara = 10 };


next up previous contents
Next: Definição de nomes de Up: Tipos agregados e derivados Previous: Uniões   Sumário
Ivan L. M. Ricarte 2003-02-14