如何使用函数指针而不是switch语句?
答案 0 :(得分:6)
与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的答案中所述。
答案 1 :(得分:3)
这是一个在C ++中很好地解释这个问题的页面: