Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

СИ, массив функций, привязка дефайнов к номеру функции в массиве

Отправлено mandigit 11 марта 2008 г. 22:05


Пиплы,
есть массив функций вида:
typedef struct
{
INT8U Priority;
void (* MnvrProc)(void);
} TMnvr;

__flash TMnvr MnvrArr[]=
{
{0, MnvrStart}, //0
{1, MnvrBack}, //1
{2, MnvrBackLeft}, //2
{2, MnvrBackRight}, //3
{3, MnvrExtrusion}, //4
{4, MnvrTargetTracing}, //5
{5, MnvrSearchTarget}, //6
{6, MnvrForward}, //7
{7, MnvrRamble}, //8
{0xFF, MnvrDummy}, //9
{0xFF, MnvrDummy}, //10
{0xFF, MnvrDummy}, //11
{0xFF, MnvrDummy}, //12
{0xFF, MnvrDummy}, //13
{0xFF, MnvrDummy}, //14
{0xFF, MnvrDummy}, //15
};

Отдельно используются дефайны вида:
#define MNVR_START 0
#define MNVR_BACK 1
#define MNVR_BACK_LEFT 2
#define MNVR_BACK_RIGHT 3
#define MNVR_EXTRUSION 4
#define MNVR_TARGET_TRACING 5
#define MNVR_SEARCH_TARGET 6
#define MNVR_FORWARD 7
#define MNVR_RAMBLE 8
#define MNVR_DUMMY 15

если я вставляю в середину массива какую-то новую функцию - приходится все дефайны переопределять. Можно-ли как-то исхитрится и объединить : вставив функцию в массив, автоматически определять дефайн, соответствующий номеру этой функции в массиве?


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru