[an error occurred while processing this directive] [an error occurred while processing this directive]
Тогда можно как в Си
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Papa Innokenty IV 16 апреля 2002 г. 12:10
В ответ на: Ответ: отправлено Внезапный тупик 16 апреля 2002 г. 12:04

В Си я делал через #define

Получается немного по-извращенски, но работает

//Задаются исп. модули
#define CLASS1 UART
#define CLASS2 SPI


#define callf_ph(ph, f) ph##::f()

#define init_ph(ph) callf_ph(ph, init)
#define run_ph(ph) callf_ph(ph, run);

#ifndef CLASS1
#define CLASS1 VOID_CLASS
#endif
#ifndef CLASS2
#define CLASS2 VOID_CLASS
#endif
#ifndef CLASS3
#define CLASS3 VOID_CLASS
#endif
.....

init()
{
init_ph(CLASS1);
init_ph(CLASS2);
init_ph(CLASS3);
...
Сколько надо.
}

run()
{
run_ph(CLASS1);
run_ph(CLASS2);
run_ph(CLASS3);
...
Сколько надо.
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru