如何使用函数指针而不是switch语句?

时间:2009-07-15 06:14:45

标签: switch-statement function-pointers

如何使用函数指针而不是switch语句?

2 个答案:

答案 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 ++中很好地解释这个问题的页面: