Я должен прочитать данные из файла pcap в массив, а затем преобразовать их в указатель структуры.
, и возникает проблема с порядком байтов.
есть мой код
#include "stdio.h"
#pragma pack(1)
struct header
{
unsigned char len:4;
unsigned char version:4;
unsigned short pkg_len;
unsigned short pkg_flag;
};
int main()
{
// assume i read 5 bytes from a file into array a.
unsigned char a [] = {0x45, 0xff, 0x08, 0xee, 0x09};
header *i = (header *)&a;
printf("%02hx %02hx %02hx %02hx\n", i->version, i->len, i->pkg_len, i->pkg_flag);
return 0;
}
он напечатал:
04 05 08ff 09ee
однако, что я хочу:
04 05 ff08 ee09
что мне делать? большое спасибо!