如何使用函数指针替代switch语句?

3
我可以使用函数指针代替switch语句吗?

1
什么语言?你想要实现什么?这是一道作业题吗? - Ian Elliott
1
你用什么语言编写代码? - lc.
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的答案所述。


3

我必须点赞,因为那是一个非常好的参考。当别人已经做过时,我不认为有必要再次解释它。谢谢。 - orodbhen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接