Autor Tema: duda variables enum  (Leído 2696 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pandemonium

  • PIC10
  • *
  • Mensajes: 14
duda variables enum
« en: 11 de Mayo de 2011, 14:13:00 »
Hola gente Todopic. Me surge una pequeña duda. Resulta que estoy compilando con el compilador PICC Hitech v9.80 y cuando creo la siguiente variable enum
Código: [Seleccionar]

typedef enum
    {
        Baud_1200 = 0xA3,
        Baud_2400 = 0x91,
        Baud_4800 = 0x47,
        Baud_9600 = 0x23,
        Baud_19200 = 0x11,
        Baud_28800 = 0x0B,
        Baud_38400 = 0x08,
        Baud_57600 = 0x05,
        Baud_115200 = 0x02

    }BAUD_RATE;

void main(void)
{
    BAUD_RATE bps;

    bps = 0xFF;
}


Al compilar no me arroja error, es decir; no se supone que si yo declaro un tipo de dato enum, el compilador debería regañarme al estar asignando un valor que no corresponde con su lista de constantes?. Lo curioso es que ni siquiera me arroja un warning. O que no he logrado entender de las variables enum ?. No he probado dicho comportamiento en CCS porque no lo he vuelto a usar. Espero sus comentarios.

Cordial saludo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: duda variables enum
« Respuesta #1 en: 11 de Mayo de 2011, 14:26:35 »
En realidad se puede hacer:

Código: [Seleccionar]
typedef enum{
        Baud_1200 = 0,
        Baud_2400,
        Baud_4800 ,
        Baud_9600,
        Baud_19200 = 0x11,
        Baud_28800,
        Baud_38400,
        Baud_57600,
        Baud_115200
    }BAUD_RATE;

Y si no se pisan los valores asignados con los creados por el compilador no hay problemas...



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado pandemonium

  • PIC10
  • *
  • Mensajes: 14
Re: duda variables enum
« Respuesta #2 en: 12 de Mayo de 2011, 17:05:28 »
Muchas gracias por la respuesta Suky Master, pero no me ha quedado del todo claro. o sea que lo que puse en el ejemplo anterior si es funcional?. Pero entonces en que reside crear variables enum, si según lo que estoy entendiendo es que podría hacer lo mismo con cualquier varible  asignandole valores que pueda renombrar mediante un #define. Lo que realmente esperaba yo del tipo enum es que el compilador arroje un error en caso de que el dato asignado no corresponda a ninguno de los datos declarados e inicializados en la variable enum. Yo supongo que esa debería ser la fortaleza del uso de este tipo de variables. Porque si no es asi, da la misma gracia usar cualquier varible y asignarle a esta valores constantes renombrados con #define como por ejemplo:
Código: [Seleccionar]
.

#define VALOR 10

void main(void)
{
  unsigned unt valor;

  valor = VALOR;
}


Espero tus comentarios y gracias de nuevo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: duda variables enum
« Respuesta #3 en: 12 de Mayo de 2011, 20:38:51 »
enum es una alternativa a usar #define's con la ventaja de que el compilar te genera los valores, y además dependiendo de los valores asignados determinar que tipo de variable utilizar.


Saludos!
No contesto mensajes privados, las consultas en el foro