Hola
Usando
XC8 v1.30 en versión free me está saliendo un glitch medio raro. Primero declaro un tipo de 24 bits sin signo, de acuerdo a la datasheet del compilador es como sigue:
typedef unsigned short long uint24_t;Short + long, quién lo pensaría.
Luego, defino un tamaño en un define... nada del otro mundo...
#define SIM_FTP_AUDIO_1_FULL_SIZE (128 * 1024)Creo una variable con mi typedef...
uint24_t index = 0;Y cuando hago uso de ella en una comparación...
while(index < SIM_FTP_AUDIO_1_FULL_SIZE)El compilador se pone loco

y me dice:
sim908.c:800: warning: (765) degenerate unsigned comparisonLeyendo la ayuda de Microchip me dice que...
(765) degenerate unsigned comparison (Code Generator)
There is a comparison of an unsigned value with zero, which will always be true or
false, e.g.:
unsigned char c;
if(c >= 0)
will always be true, because an unsigned value can never be less than zero.
Pero eso es falso, estoy comparando con algo diferente a cero.
¿Alguien le ha dado la vuelta a este glitch raro?
Gracias!
