Обратный порядок байтов C-структуры

У меня есть структура в C, которая выглядит так:

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;

Я объявил структуру и записал значения в поля следующим образом:

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; 

Я отправляю эту структуру через UDP на сервер. В настоящее время это работает нормально, когда я тестирую локально, однако теперь мне нужно отправить эту структуру из моегоlittle-endian машина кbig-endian машина. Я не совсем уверен, как это сделать.

Я смотрел на использованиеhtons но я не уверен, что это применимо в этой ситуации, так как это, кажется, определено только дляunsigned ints 16 или 32 бит, если я правильно понял.

Ответы на вопрос(3)

Ваш ответ на вопрос