6

我正在向一位正在学习的同事演示如何使用函数指针以及他如何拥有它们的数组。我记下以下代码,以便他可以进行索引调度:

typedef void (*VoidFunction)();
VoidFunction functions[]  =
    {editProgramName,
     editProgramLength,
     editProgramCycles,
     editProgramNumberOfSets,
     editProgramEditSets,
     editProgramSave,
     editProgramCancel};
// now dispatch                    
functions[scroll.arrayFocusIndex]();

然后他问……“没有 typedef 怎么办?” 在尝试了各种似乎可行的事情后,我发现,我没有任何线索可做。我发现的所有谷歌点击似乎总是使用 typedef。有没有办法在没有函数指针的 typedef 的情况下内联?

4

2 回答 2

4
void (*functions[])() =
    {editProgramName,
     editProgramLength,
     editProgramCycles,
     editProgramNumberOfSets,
     editProgramEditSets,
     editProgramSave,
     editProgramCancel};
// now dispatch
functions[scroll.arrayFocusIndex]();
于 2012-12-06T23:21:20.720 回答
3

这对我有用:

void a()
{
}

void b()
{
}

void (*functions[2])();

int main()
{
    functions[0] = a;
    functions[1] = b;
    return 0;
}
于 2012-12-06T23:17:11.010 回答