Como posso reordenar os bytes de um número inteiro?

Minha tarefa é converter um arquivo de dados de big endian para little endian e vice-versa usando C. Estou procurando on-line há cerca de 3 horas outros exemplos e lendo meu livro de texto, mas estou tão empolgado em como começar isso. função.

Até agora, a ordem dos eventos está correta (1 a 4), mas dentro da minhaconvert_and_save função eu tenho que criar uma matriz de caracteres usando →char buffer[4];?

Alguém por favor pode me ajudar? mesmo se você me der pistas sobre o que procurar, eu agradeceria muito.

Eu preciso escrever uma função chamada:

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

dentro desta função, eu faço as seguintes séries de etapas:

Converta o número inteiro em uma matriz de caracteres usando:

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

Inverta a ordem dos caracteres nessa matriz.

Converta a matriz de caracteres de volta em um número inteiro usando:

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

escreva o registro convertido no arquivo de saída usando:

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);
}

questionAnswers(5)

yourAnswerToTheQuestion