У меня IAR Embedded Workbench 5.4 микрокантролер AT91SAM9263.
Делаю вот такое объявление для работы с BMP файлом:
typedef struct _BITMAP
{
unsigned short bfType;
unsigned int bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned int bfOffBits;
unsigned int biSize;
unsigned int biWidth;
unsigned int biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned int biCompression;
unsigned int biSizeImage;
unsigned int biXPelsPerMeter;
unsigned int biYPelsPerMeter;
unsigned int biClrUsed;
unsigned int biClrImportant;
unsigned char data[1152000];
} BITMAP;
typedef union _BMPImg
{
unsigned char data[1152054];
BITMAP BMP;
} BMPImg;
BMPImg images;
При просмотре переменных получается картина, поле bfType занемает 4 байта вмета двух соответственно дальше всё сбвинуто, скриншот в файле.
Вопрос такой, это глюк или что то я неправильно делаю, или это связанно с выравниванием памяти?