Вызов функции, имя которой хранится в переменной char*
- Войдите на сайт для отправки комментариев
В программе требуется последовательный запуск нескольких функций, имена которых хранится в массиве в зависимости от состояния соответствующего флага запуска.
Алгоритм, который я предполагаю сделать:
//Строковый массив имен функций, которые должны выполняться в зависимости от соответствующего значения FlagFunc[]
char* FuncName[]={"func1()","func2()","func3()","func4()","func5()","func6()","func7()"};
//Массив флагов Если значение FlagFunc(i)=1, то функция с именем //FuncName[i] должна выполниться. Т.е. в данном примере нужно последовательно запустить func3(), func5(), //func6()
boolean FlagFunc[]={0,0,1,0,1,1,0};
void func1()
{// Функция1
}
...
...// Определения всех семи функций
...
void func7()
{// Функция7
}
void loop()
{
//Тут тело программы в которой назначаются в массиве FlagFunc[] те функции которые потом будет необходимо выполнить;
for(i=0;i<8;i++)\\ Цикл выполнения необходимых функций
{
if( FlagFunc[i]==1){ Тут должна запуститься функция с именем FuncName[i]}
}
почитайте по теме: arduino Defining an array of function pointers