与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的答案中所述.