我向一位学习同事展示了如何使用函数指针以及如何使用它们的数组。我放下了以下代码,以便他可以进行索引调度:
typedef void (*VoidFunction)();
VoidFunction functions[] =
{editProgramName,
editProgramLength,
editProgramCycles,
editProgramNumberOfSets,
editProgramEditSets,
editProgramSave,
editProgramCancel};
// now dispatch
functions[scroll.arrayFocusIndex]();
然后他问道......“如果没有typedef怎么办呢?”在尝试了似乎可能有用的各种事情后,我发现了这些,我没有做任何线索。我发现的所有谷歌点击总是似乎使用typedef。有没有办法在没有函数指针的typedef的情况下内联?
答案 0 :(得分:4)
void (*functions[])() =
{editProgramName,
editProgramLength,
editProgramCycles,
editProgramNumberOfSets,
editProgramEditSets,
editProgramSave,
editProgramCancel};
// now dispatch
functions[scroll.arrayFocusIndex]();
答案 1 :(得分:3)
这对我有用:
void a()
{
}
void b()
{
}
void (*functions[2])();
int main()
{
functions[0] = a;
functions[1] = b;
return 0;
}