Хм... Я разве где-то подобное говорил??
Я вообще-то говорил почти противоположное:
1. Структуры в си
по умолчанию не упакованные.
2. Выравнивание структуры равно выравниванию максимального члена структуры.
3. Максимальное выравнивание для встроенных типов данных как правило не превышает основной разрядности CPU (хотя это не могу утверждать с полной уверенностью).
(т.е. - если CPU 32-разрядный, то выравнивание 64-битного встроенного типа будет всё равно ==32).
Про упакованность - тоже Вы что-то не поняли. Я как раз писал, что пакование может выполняться не обязательно до уровня байт, может быть до уровня 16-бит или др.
см. #pragma pack(push, N) в IAR к примеру. Пример IAR:
#pragma pack(push, 2)
struct T {
u32 a;
u8 b;
};
#pragma pack(pop)
В данной структуре будет sizeof(T)==6. И выравнивание её будет равно ==16бит.
И вообще - упаковка не входит в язык си и может выполняться по-разному на разных компиляторах.
Цитата(Golikov A. @ May 12 2014, 02:55)

А вы уверены что упакованные 6 байтные структуры идут в памяти через 6 байт на всех типах процов?
Очевидно, что в си, если имеется структура (не важно - пакованная или нет), то в массиве элементов этой структуры начало каждого следующего элемента будет
находиться по смещению sizeof() от предыдущего. А вот уже величина этого sizeof(T) будет зависеть от наличия pack() в её атрибутах и величины пакования этого самого pack().