Господа, подскажите как мне правильно сделать:

CODE
/**
* Пакет данных на отправление - 20 измерений акселерометра - 240 байт, упакован на 1!!!
*/
#pragma pack(1)
typedef struct {
u8 len; /* Длина пакета без контрольной суммы */
u8 adc; /* Номер работающих АЦП - четыре бита подряд */
u16 msec; /* Миллисекунда первого измерения */
u32 sec; /* UNIX TIME первого измерения */

struct { /* 3-х байтный пакет (* 4) */
unsigned x:24;
unsigned y:24;
unsigned z:24;
unsigned h:24;
} data[NUM_ADS1282_PACK];

u16 rsvd; /* Выравнивание, чтоб по 4 байтному адресу все было */
u16 crc16; /* Контрольная сумма пакета */
} ADS1282_PACK_STRUCT/* __attribute((packed)) */;

ни #pragma pack(1)
ни __attribute((packed))
не хотят работать. размер структуры 252 байт, при компиляции в Linux-64 пишет что 256
и ругается что мол атрибут packed проигнорирован
как все это правильно упаковать в этой операционке?

Все решено sm.gif
1) u32 у меня ошибочно был объявлен дефиницией как unsigned long, надо было uint32_t
2) структура внутри структуры то же должна быть с __attribute__((packed))