Scrivere un programma per determinare se un computer è big-endian o little-endian.Qualcuno può spiegare questa funzione di "endianità" per me?
bool endianness() {
int i = 1;
char *ptr;
ptr = (char*) &i;
return (*ptr);
}
Quindi ho la funzione di cui sopra. Non capisco davvero. ptr = (char *) & io, che credo significhi puntatore a un carattere all'indirizzo di dove sono seduto, quindi se un int è 4 byte, ad esempio ABCD, stiamo parlando di A o D quando chiami char * su quella? e perché?
Qualcuno potrebbe spiegarlo più dettagliatamente? Grazie.
In modo specifico, ptr = (char *) & i; quando lo lanci in char *, quale parte di & ricevo?
sarebbe più comprensibile se si denominasse la funzione 'littleEndian()' poiché restituisce true se l'architettura è little endian. 'endianness() == true' non è molto informativo. –
Potrebbe essere scritto in modo molto più conciso: 'bool little_endian (void) {static const int i = 1; return reinterpret_cast (i) == 1; } ' –
GManNickG