如何使用函数指针而不是 switch 语句?
jimit
问问题
5619 次
2 回答
7
与 ars 发布的链接略有不同的方法:您可以将 switch 语句中的值用作函数指针数组中的数组索引。所以不要写
switch (i) {
case 0: foo(); break;
case 1: bar(); break;
case 2: baz(); break;
}
你可以这样做
typedef void (*func)();
func fpointers[] = {foo, bar, baz};
fpointers[i]();
或者,您可以使用函数指针而不是 ars 答案中描述的数字。
于 2009-07-16T00:22:14.023 回答
3
这是一个用 C++ 很好地解释这一点的页面:
编辑:
截至 2020 年 6 月,以上链接已断开。缓存在此处:
于 2009-07-15T06:20:13.297 回答