Почему fread портит мой порядок байтов?

Я пытаюсь разобрать файл bmp сfread() и когда я начинаю анализировать, он меняет порядок моих байтов.

typedef struct{
    short magic_number;
    int file_size;
    short reserved_bytes[2];
    int data_offset;
}BMPHeader;
    ...
BMPHeader header;
    ...

Шестнадцатеричные данные42 4D 36 00 03 00 00 00 00 00 36 00 00 00; Я загружаю шестнадцатеричные данные в структуруfread(&header,14,1,fileIn);

Моя проблема в том, где должно быть магическое число0x424d //'BM' fread () переворачивает байты, чтобы быть0x4d42 // 'MB'

Почему fread () делает это и как я могу это исправить;

РЕДАКТИРОВАТЬ: Если я не был достаточно конкретным, мне нужно прочитать весь кусок шестнадцатеричных данных в структуре, а не только магическое число. Я выбрал только магическое число в качестве примера.

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

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