Такой вариант не катит. Сразу выдает ошибку: структуру можно хранить только в том типе памяти в котором определена. Если в операторе Typedef указываеш тип памяти flash, то эта ошибка пропадает. Но появляется другая: указатель на разные типы памяти. Это из-за того что mas храниться во flash. Когда ставиш flash unsigned char *mas- ошибка по указателю пропадает и происходит новая ошибка указавающая на строку
flash set_sign signal_set[2]= {{mes22,fl_sign.kabina,punkt_zumer,punkt_kuzov},<---- сюда показывает
{mes22,fl_sign.kabina,punkt_zumer,punkt_kuzov}};
И пишет: non adress/- constant initializer. Т.е. возвращается к тому от чего я пытаюсь уйти((((
Мне кажется это из-за того что при инициализации данных необходимо указывать константные выражения. А fl_sign.kabina есть операция обращения к элементу массива и поэтому выдает ошибку.
Цитата(IgorKossak @ Jun 19 2006, 11:06)

Согласно стандарту нельзя соэдать указатель на элемент структуры типа битовое поле.
Тоже самое происходит если структуру определить без полей битов. Вот таким образом
eeprom struct flagi_signal
{unsigned char kabina;
unsigned char kuzov;
unsigned char revun;
unsigned char zumer;
}fl_sign={1,1,1,1};