Escribe un programa para determinar si una computadora es big-endian o little-endian.¿Alguien puede explicarme esta función de "endian-ness"?
bool endianness() {
int i = 1;
char *ptr;
ptr = (char*) &i;
return (*ptr);
}
Así que tengo la función anterior. Realmente no lo entiendo ptr = (char *) & i, que creo que significa un puntero a un carácter en la dirección de donde estoy sentado, así que si un int es de 4 bytes, di ABCD, ¿estamos hablando de A o D cuando llamas a char *? ¿ese? ¿y por qué?
¿Alguien podría explicar esto con más detalle? Gracias.
Específicamente, ptr = (char *) & i; cuando lo lanzas a char *, ¿qué parte de & obtengo?
sería más comprensible si nombrara la función 'littleEndian()' ya que devuelve true si la arquitectura es little endian. 'endianness() == true' no es muy informativo. –
Se podría escribir mucho más concisamente: 'bool little_endian (void) {static const int i = 1; return reinterpret_cast (i) == 1; } ' –
GManNickG