Я работаю со структурой, скомпилированной для 32-битного процессора ARM.
typedef struct structure {
short a;
char b;
double c;
int d;
char e;
}structure_t;
Если я ничего не использую, __attribute__ ((aligned (8)))
или __attribute__ ((aligned (4)))
я получаю те же результаты с точки зрения размера структуры и элементовсмещение.Общий размер равен 24. Поэтому я думаю, что он всегда выравнивается до 8 (смещения для обоих a=0
, b=2
, c=8
, d=16
, e=20
).
Почему 8выравнивание по умолчанию выбрано компилятором?Разве это не должно быть 4, потому что текстовый процессор 32?
Спасибо заранее, товарищи.