Обратный порядок байтов 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 бит, если я правильно понял.