我很难看到函数指针的实用程序.我想它在某些情况下可能是有用的(毕竟它们存在),但我想不出使用函数指针更好或不可避免的情况.
你能举出一些好用函数指针的例子(在C或C++中)吗?
我在C中读到了函数指针.每个人都说这将使我的程序运行缓慢.这是真的吗?
我制作了一个程序来检查它.我在两个案例中得到了相同的结果.(衡量时间.)
那么,使用函数指针是不是很糟糕?提前致谢.
为了回应一些人.在循环中我比较的时候我说"运行缓慢".像这样:
int end = 1000;
int i = 0;
while (i < end) {
fp = func;
fp ();
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时,如果执行此操作,我会得到相同的时间.
while (i < end) {
func ();
}
Run Code Online (Sandbox Code Playgroud)
所以我认为函数指针没有时间差异,也没有像许多人所说的那样使程序运行缓慢.
我们知道在C语言中使用函数指针在适当的场景中使用时非常有用(在运行时调用函数与编译时间,使代码更具可读性等),但是关于简单函数调用vs的文献并不多.使用函数指针.
void foo(void) {
printf("hello\n");
}
int testFcn(void) {
// simple invokation
foo();
return 0;
}
// Or, declare function pointer and assign
void (*myFunc)(void) = foo;
int testFcn(myFunc) {
// Function pointer invokation.
myFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
也许唯一真正的方法是分析.lst文件和.map文件?