JFL
2005-05-25 17:09:01 UTC
sé que es una tonteria, pero no quiero seguir probando cosas sin ton ni
son... Tengo un char* que ha llegado por una conexion TCP, y uno de esos
bytes tengo que compararlo con un array de shorts para ver si ya existe
ese valor en el array.
Tal y como yo lo hago
if((unsigned short)datos[3]==array[1])
{
/* ok */
}
me funciona perfectamente en el PC, pero probandolo en un ultrasparc no
encuentra ninguna coincidencia (y la coincidencia está porque yo me
aseguro de que esté ;)
Supongo que sera cosas de little endian y big endian de los procesadores
al pasarle un solo byte para crear un short, pero no quiero llenar el
codigo de #ifdef para diferenciar los casos.
¿a alguien se le ocurre un cast rapido y sencillo que funcione en los
dos sistemas?
un saludo
son... Tengo un char* que ha llegado por una conexion TCP, y uno de esos
bytes tengo que compararlo con un array de shorts para ver si ya existe
ese valor en el array.
Tal y como yo lo hago
if((unsigned short)datos[3]==array[1])
{
/* ok */
}
me funciona perfectamente en el PC, pero probandolo en un ultrasparc no
encuentra ninguna coincidencia (y la coincidencia está porque yo me
aseguro de que esté ;)
Supongo que sera cosas de little endian y big endian de los procesadores
al pasarle un solo byte para crear un short, pero no quiero llenar el
codigo de #ifdef para diferenciar los casos.
¿a alguien se le ocurre un cast rapido y sencillo que funcione en los
dos sistemas?
un saludo