Я пытаюсь создать многопотоковый конечный автомат, где каждое состояние возвращает указатель на следующее состояние. У меня есть несколько состояний машины, поэтому следующее состояние из них хранится в массиве, который упорядочен, чтобы называть их циклическим способом. Так что я хотел бы сделать, это:Функция возвращает указатель на функцию, возвращающую указатель на функцию
pState[i] = (pState[i])();
Я понимаю, как вернуть указатель на функцию в целом, но так как мне нужно возвращаемый указатель будет тип функции, которая возвращает указатель на функцию рекурсии путает меня. Состояние будет выглядеть так:
pSatateFunc StateA(void){
// ... code ...
return StateB;
}
Итак, как я могу определить это, чтобы определить массив указателей?
Я знаю, что это было задано раньше, но я не могу найти вопрос. Но короткий ответ - нет, вы не можете рекурсивно определять указатели на функции. Но есть обходные пути (простейшее бытие, функция возвращает void *, который отбрасывается на указатель функции) –
Спасибо, я как бы думал об этом, но думал, что я чего-то не хватает. – rrritchey