Цитата(SergSit @ Jun 19 2006, 10:43)

Програмировать в СИ только начинаю, так что если что не правильно сильно не бейте.
В процессе написание проги возникла не обходимость обращаться к элементам структуры через указатели. Предположим есть структура :
eeprom struct flagi_signal
{unsigned char kabina:1;
unsigned char kuzov:1;
unsigned char revun:1;
unsigned char zumer:1;
}fl_sign={1,1,1,1};
Теперь хочу создать массив структур в котором один из элементов должен ссылать на елементы сртукткры fl_sign, причем новая структура должна (если это возможно) храниться во Flash. Моя версия не работает
flash struct set_sign
{flash unsigned char *mas;
eeprom unsigned char *pun;---> елемент который должен ссылать на елемент структуры fl_sign
unsigned int punkt_up;
unsigned int punkt_down;
}signal_set[]={{mes22,fl_sign.kabina,punkt_zumer,punkt_kuzov},
{mes22,fl_sign.kabina,punkt_zumer,punkt_kuzov}};
Прогу пишу в CodeVision. Перепробывал много вариантов, не хватает опыта и глубокого знания СИ.
Может кто сталкивался с такой проблемой?
Указатели на битовые поля, как уже говорилось выше, создать нельзя. Если структуру flagi_signal определить так:
Цитата
eeprom struct flagi_signal
{unsigned char kabina;
unsigned char kuzov;
unsigned char revun;
unsigned char zumer;
}fl_sign={1,2,3,4};
То вот такой вариант работает (проверял правда в ИАРе):
Цитата
__flash struct set_sign
{unsigned char __flash *mas;
unsigned char __eeprom *pun;
unsigned int punkt_up;
unsigned int punkt_down;
}signal_set[]={{mes22,&fl_sign.kabina,punkt_zumer,punkt_kuzov},
{mes22,&fl_sign.kuzov,punkt_zumer,punkt_kuzov}};