Odwróć endianizm struktury C

Mam strukturę w C, która wygląda tak:

typedef u_int8_t NN;
typedef u_int8_t X;
typedef int16_t S;
typedef u_int16_t U;
typedef char C;

typedef struct{
 X test;
 NN test2[2];
 C test3[4];
 U test4;
} Test;

Deklarowałem strukturę i zapisane wartości do pól w następujący sposób:

Test t;
int t_buflen = sizeof(t);
memset( &t, 0, t_buflen);
t.test = 0xde;
t.test2[0]=0xad; t.test2[1]=0x00;
t.test3[0]=0xbe; t.test3[1]=0xef; t.test3[2]=0x00; t.test3[3]=0xde;
t.test4=0xdeca; 

Wysyłam tę strukturę przez UDP na serwer. Obecnie działa to dobrze, gdy testuję lokalnie, jednak teraz muszę wysłać tę strukturę z mojegolittle-endian maszyna do abig-endian maszyna. Nie jestem pewien, jak to zrobić.

Szukałem użyciahtons ale nie jestem pewien, czy ma to zastosowanie w tej sytuacji, ponieważ wydaje się, że jest to tylko zdefiniowaneunsigned ints 16 lub 32 bity, jeśli dobrze zrozumiałem.

questionAnswers(3)

yourAnswerToTheQuestion