Schreiben Sie ein Programm, um festzustellen, ob ein Computer Big-Endian oder Little-Endian ist.Kann jemand diese "Endian-Ness" -Funktion für mich erklären?
bool endianness() {
int i = 1;
char *ptr;
ptr = (char*) &i;
return (*ptr);
}
So habe ich die obige Funktion. Ich verstehe es nicht wirklich. ptr = (char *) & ich, was ich denke, bedeutet einen Zeiger auf ein Zeichen an Adresse von wo ich sitze, also wenn ein int ist 4 Bytes, sagen ABCD, sprechen wir über A oder D, wenn Sie char * on aufrufen Das? und warum?
Würde jemand bitte dies genauer erklären? Vielen Dank.
Also speziell, ptr = (char *) & i; Wenn Sie es in char * umwandeln, welchen Teil von & erhalte ich?
Es wäre verständlicher, wenn Sie die Funktion 'littleEndian()' nennen würden, da sie true zurückgibt, wenn die Architektur Little Endian ist. 'endianness() == true' ist nicht sehr informativ. –
Es könnte viel prägnanter geschrieben werden: 'bool little_endian (void) {statisch const int i = 1; return reinterpret_cast (i) == 1; } ' –
GManNickG