СИ - структура и выравнивание
Язык СИ
ОС UNIX
создаю структуру
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; // 2 байта
DWORD bfSize; // 4 байта
WORD bfReserved1; // 2 байта
WORD bfReserved2; // 2 байта
DWORD bfOffBits; // 4 байта
} BITMAPFILEHEADER;
BITMAPFILEHEADER bfh;
всего 14 байт.
Ожидал получить sizeof(bfh)=14.
А получилось sizeof(bfh)=16,
напоминает выравнивание.
Далее предполагалось
write(fd, bfh, sizeof(bfh)); //--- заголовок file.bmp (рисунок) ---
Не вышло. Нарушен формат файла.
Пришлось выкручиваться.
Почему не получаю ожидаемую структуру?
Кто знает прошу ответить.