Почему 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 () делает это и как я могу это исправить;

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

11
задан Chase Walden 11 September 2014 в 21:35
поделиться