我在C语言中读到了函数指针,每个人都说这会使我的程序运行缓慢。是真的吗?
我写了一个程序来检查它。我在两个案例中都得到了相同的结果。(测量时间。)
那么,使用函数指针是不是很糟糕呢?提前谢谢。
对一些人的回应。我说的是“慢跑”,因为我在循环中进行了比较。如下所示:
int end = 1000;
int i = 0;
while (i < end) {
fp = func;
fp ();
}当你执行这个的时候,如果我执行这个,我会得到相同的时间。
while (i < end) {
func ();
}所以我认为函数指针没有时间差,它不会像许多人说的那样使程序运行缓慢。
发布于 2010-03-13 21:50:40
我认为当人们这样说的时候,他们指的是使用函数指针可能会阻止编译器优化(内联)和处理器优化(分支预测)。然而,如果函数指针是完成你想要做的事情的一种有效方法,那么任何其他的方法都有同样的缺点。
除非您的函数指针在性能关键型应用程序或速度非常慢的嵌入式系统中的紧密循环中使用,否则差异可能是微不足道的。
https://stackoverflow.com/questions/2438539
复制相似问题