Écrivez un programme pour déterminer si un ordinateur est big-endian ou little-endian.Quelqu'un peut-il expliquer cette fonction "endian-ness" pour moi?
bool endianness() {
int i = 1;
char *ptr;
ptr = (char*) &i;
return (*ptr);
}
J'ai donc la fonction ci-dessus. Je ne comprends pas vraiment. ptr = (char *) & je, qui je pense signifie un pointeur vers un caractère à l'adresse de où je suis assis, donc si un int est de 4 octets, disons ABCD, parlons-nous de A ou D lorsque vous appelez char * on cette? et pourquoi?
Quelqu'un pourrait-il expliquer cela plus en détail? Merci.
Donc spécifiquement, ptr = (char *) & i; quand vous le lancez en char *, quelle partie de & puis-je obtenir?
il serait plus compréhensible si vous avez nommé la fonction 'littleEndian()' car elle renvoie vrai si l'architecture est peu endian. 'endianness() == true' n'est pas très instructif. –
Il pourrait être écrit beaucoup plus concis: 'bool little_endian (void) {statique const int i = 1; return reinterpret_cast (i) == 1; } ' –
GManNickG