函数指针如何比if-else或switch case更好?这是因为函数指针有助于回调函数,从而促进异步实现吗?函数指针
函数指针
回答
如果事先不知道功能会更好。如何设计C标准库qsort()
而不使用函数指针?
“如果事先不知道函数”,这是一个关键点。我只是想强调一下。 – givanse 2012-01-06 18:07:23
这不是“更好”,它是不同的。是的,函数指针的主要目的是提供回调函数。不,它与异步没有直接关系。
有关函数指针的更多信息,请查看this article。
函数指针导致代码的一个更好的设计。考虑何时可以选择从五十个函数中调用一个函数。开关盒有多大?但是,您可以根据自己的id轻松映射所有函数指针,并使用“id”从映射中调用适当的函数。代码很容易维护,看起来很整洁。
还有其他的好处和使用功能指针的权力。 为了一个很好的解释,看看教程here
另外,您在使用映射时不会遇到复杂性保证,因为这种映射在switch-case中不会有。编译器可能并不总是能够建立一个跳转表,在这种情况下,要调用的正确函数的搜索将是顺序的。在一个映射中,搜索将是一个非常快的O(log N),带有一个二叉树,或者一个散列映射中的O(1)。 – lvella 2012-06-13 03:30:33
- 1. c函数指针反函数指针
- 2. 指针?指针函数?
- 3. 函数指针指向一个函数指针的函数
- 4. 函数指针
- 5. 函数指针
- 6. 函数指针
- 7. 函数指针
- 8. 函数指针?
- 9. 函数指针
- 10. 函数指针
- 11. 函数指针
- 12. 函数指针
- 13. 函数指针
- 14. 函数指针不带指针参数
- 15. 函数指针/函数表
- 16. 成员函数指针指向函数指针?
- 17. C++通过函数指针指向另一个函数指针
- 18. 指向结构函数指针的函数指针
- 19. 将指针指向成员函数作为函数指针
- 20. 指向函数指针
- 21. 指向函数的指针
- 22. C函数指针铸造空指针
- 23. C++中函数指针的指针
- 24. 阵列的函数指针的指针
- 25. C指针函数
- 26. C:函数指针
- 27. Python函数指针
- 28. C#函数指针
- 29. MPI +函数指针?
- 30. JScript函数指针
你可能想提及你所指的语言。 – griegs 2010-06-16 04:42:00
为什么知道语言会有什么不同? – 2010-06-16 04:45:28
在什么情况下更好?写条件或开关不好...... – Stephen 2010-06-16 04:45:45