Есть такая вот структура:
struct tagBMPFileHeader
{
short int bfType;
int bfSize;
short int bfReserved1;
short int bfReserved2;
int bfOffBits;
};
Почему sizeof(tagBMPFileHeader) == 16 ?
Если убрать к примеру short int bfType
sizeof становится равен 12.
Это как ?
Выравнивание что ли?
И как от этого избавится, т. к. из файла структуру читает неправильно:
fread(&BMPFileHeader, sizeof(BMPFileHeader), 1, f);
выдаёт информацию со "сдвигом" на 2 байта вправо.
Компилятор gcc 2.96