Wie kann ich die Bytes einer Ganzzahl neu anordnen?

Meine Aufgabe ist es, eine Datendatei mit C von Big Endian nach Little Endian und umgekehrt zu konvertieren. Ich habe jetzt ungefähr 3 Stunden online nach anderen Beispielen gesucht und mein Lehrbuch gelesen, aber ich weiß noch nicht, wie ich damit anfangen soll Funktion.

Bisher habe ich die Reihenfolge der Ereignisse richtig (1 bis 4), aber in meinemconvert_and_save Funktion muss ich ein Zeichen-Array mit → erstellenchar buffer[4];?

Kann mir bitte jemand helfen? Selbst wenn Sie mir nur Hinweise geben, was ich nachschlagen soll, würde ich es sehr schätzen.

Ich muss eine Funktion schreiben, die heißt:

void convert_and_save(struct record item, FILE * output_handle, int number);

In dieser Funktion führe ich die folgenden Schritte aus:

Konvertieren Sie die Ganzzahl in ein Array von Zeichen mit:

int integer_to_characters(int number, char * buffer)
{
   memcpy(buffer, &number, 4);
}

Kehren Sie die Reihenfolge der Zeichen in diesem Array um.

Konvertieren Sie das Array von Zeichen zurück in eine Ganzzahl mit:

int characters_to_integer(char * buffer)
{
   int result;
   memcpy(&result, buffer, 4);
   return result;
}

Schreiben Sie den konvertierten Datensatz in die Ausgabedatei mit:

void save_record(FILE * file_handle, struct record a)
{
   char output_buffer[size_of_record];
   integer_to_characters(a.age, &(output_buffer[0]));
   memcpy(&(output_buffer[4]), a.name, 12);
   integer_to_characters(a.department, &(output_buffer[16]));
   fwrite(output_buffer, sizeof(char), size_of_record, file_handle);
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage