ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
164532 Топик полностью
Vladimir Ljaschko (25.08.2009 10:50, просмотров: 147) ответил Vit на Всё-равно не понимаю о чём речь.
Где-то значение задавать надо, и желательно, чтобы это "где-то" было в параметрах макроса - для обеспечения идеальной читаемости текста. Вопрос именно так - как присвоить этому значению человеческое имя.  Допустим, определяем области EEPROM: EEPROM_ARRAY(SETUP, 1) EEPROM_ARRAY(STATISTIC, 200) .... Нужно развернуть для ссылок на область в функции чтения из ЕЕПРОМ enum ( numSETUP, numSTATISTIC); Для объявления в ОЗУ: SETUP_TYPE varSETUP; STATISTIC_TYPE varSTATISTIC; А вот для обьявления структуры EEPROM не получается: struct { SETUP_TYPE varSETUP[1]; STATISTIC_TYPE var[200]; } 1 и 200 должны попасть из первых двух строк (для идеальной читаемости текста). То есть нужно сгенерировать #define SETUP_QTY 1 #define STATISTIC_QTY 100 чтобы потом записать struct { SETUP_TYPE varSETUP[SETUP_QTY]; STATISTIC_TYPE var[STATISTIC_QTY]; } Но это получается дважды. Я решил задачу половинчато: Файл с определениями разбит на две части условной компиляцией #ifdef DEFINITIONS #define SETUP_QTY 1 #define STATISTIC_QTY 100 #else EEPROM_ARRAY(SETUP, SETUP_QTY) EEPROM_ARRAY(STATISTIC, STATISTIC_QTY) #endif Вначале один раз вставляю с определенным DEFINITIONS, ну а потом многократно все остальное. Определения количества массивов находятся на 15 строчек выше описания массива. Терпимо, конечно. Но хочется иметь идеал :-) Сумбурно, но я вообще-то блин в отпуске:-(