[an error occurred while processing this directive]
|
Возможно ли в йар авр указать компилятору не делать выравнивание битовых полей по границе байта в структурах?
Под U1 он отведет 2 байта. Под U2 тоже два, т.к. поле F2 на бит больше чем оставшиеся два бита в первом байте и он выравняет это поле уже по границе второго байта. А хотелось бы всю структуру упаковать в полтора байта.
union{
unsigned char Tab[2];
struct{
unsigned char F0 : 4;
unsigned char F1 : 4;
unsigned char F2 : 4;
unsigned char F3 : 4;
}Test1;
}U1;
union{
unsigned char Tab[2];
struct{
unsigned char F0 : 3;
unsigned char F1 : 3;
unsigned char F2 : 3;
unsigned char F3 : 3;
}Test2;
}U2;
E-mail: info@telesys.ru