Tengo el siguiente código'la comparación es siempre cierta debido al tipo limitado de tipo de datos' de advertencia en C?
//Point.h
#define WIDTH 8
#define HEIGHT 8
typedef struct Point
{
char x;
char y;
} Point;
//Board.c
#include <stdbool.h>
// Some other functions that we don't care about...
bool inBounds(Point * p)
{
return p->x >= 0
&& p->x <= WIDTH
&& p->y >= 0
&& p->y <= HEIGHT;
}
Cuando compilo este (PPU-gcc 4.1.1), me sale el siguiente mensaje de advertencia
warning: comparison is always true due to limited range of data type
a pesar de que el rango de char es entre -127 y 127 y WIDTH es 8, que está dentro del rango de un char. Ya he probado un lanzamiento explícito de WIDTH a un char, pero aún así recibí el error.
acaba de cambiar su estructura a int, y ver lo que sucedió? –
En su caso, necesita atoi o molde estático para xey, luego compare con la altura y el ancho. –