ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
164551 Топик полностью
Vit (25.08.2009 12:48, просмотров: 96) ответил Vladimir Ljaschko на Где-то значение задавать надо, и желательно, чтобы это "где-то" было в параметрах макроса - для обеспечения идеальной читаемости текста. Вопрос именно так - как присвоить этому значению человеческое имя.
Что такое "определяем области EEPROM"? Зачем вообще массивы пихать в структуры? Ладно, на безрыбье, но всё-таки зачем?  А ещё потом с выравниванием можно наиграться... Я бы не экономил пару байт описания, тем более их можно положить во FLASH typedef ... SETUP_TYPE; typedef ... STATISTIC_TYPE; typedef struct EE_DEF{ int setup_qty; int statistic_qty; SETUP_TYPE *varSETUP; STATISTIC_TYPE *var; }EE_DEF; #define EE_ARRAY_DEFINE(SETUP_QTY,STATISTIC_QTY) \ SETUP_TYPE EE_VarSetup[SETUP_QTY]; \ STATISTIC_TYPE EE_Vars[STATISTIC_QTY]; \ const /*__flash */ EE_DEF EE_Arr = { \ .setup_qty = SETUP_QTY, \ .statistic_qty = STATISTIC_QTY, \ .varSETUP = EE_VarSetup, \ .var = EE_Vars \ }/*;*/ #define EEPROM_ARRAY_SETUP_QTY_DEFAULT 1 #define EEPROM_ARRAY_STATISTIC_QTY_DEFAULT 3 #define EE_ARRAY_DEFAULT_SET() EE_ARRAY_DEFINE(EEPROM_ARRAY_SETUP_QTY_DEFAULT,EEPROM_ARRAY_STATISTIC_QTY_DEFAULT) Или имя добавить #define EE_ARRAY_SET(NAME,SETUP_QTY,STATISTIC_QTY) \ SETUP_TYPE EE_##NAME##_VarSetup[SETUP_QTY]; \ STATISTIC_TYPE EE_##NAME##_Vars[STATISTIC_QTY]; \ const /*__flash */ EE_DEF EE_##NAME##_Arr = { \ .setup_qty = SETUP_QTY, \ .statistic_qty = STATISTIC_QTY, \ .varSETUP = EE_##NAME##_VarSetup, \ .var = EE_##NAME##_Vars \ }/*;*/