所以这就是我正在使用的。
{
int Test;
void (*functions[5])() = {
return,
one,
two,
three,
four
};
for (Test = takeInput(5);; Test = takeInput(5)){
cls();
Print(L"0) Abort\n");
Print(L"1) One\n");
Print(L"2) Two\n");
Print(L"3) Three\n");
Print(L"4) Four\n");
Print(L"Enter Selection: ");
(*functions[Test])();
}
}
这就是我想要做的事情的要点。这是某种上下文的菜单系统(并且 takeInput(5) 将暂停输入,停止循环,直到有人输入数字)。
问题是,以这种方式使用 return 显然是错误的。我认为看到(我认为)return 是一个函数,我不明白为什么不能将它放入函数指针数组中以跳出菜单。我想我可以制作一个在调用时基本上只返回 true 的虚拟函数,然后检查它(问题在于所有其他函数都返回 void)。即使这样可行,我也希望有一个与上述非工作示例一样独立的解决方案。
有没有一种比我想象的更好的、干净的、希望简短的方法来做到这一点?