【发布时间】:2013-06-19 20:20:21
【问题描述】:
有哪些使用函数指针的实际例子和应用?我不明白为什么有人需要使用它。
谢谢
【问题讨论】:
-
传递给
qsort的比较函数
有哪些使用函数指针的实际例子和应用?我不明白为什么有人需要使用它。
谢谢
【问题讨论】:
qsort的比较函数
两个主要原因:
1) 您可以选择在特定情况下使用哪个函数。
2) 你可以为另一个函数提供一个回调函数(例如,C 标准库函数qsort 将函数指针作为参数:你自己编写这个函数来告诉qsort如何比较两个值)。
【讨论】:
如果你有一个对象包含另一个对象,(让我们将它们标记为 A 和 B),你可以将指向 A 中的函数的指针传递给 B 对象,并从 B 中的 A 调用函数。这是已知的作为回调,并且相当频繁地使用。
【讨论】:
主要原因是您可以将函数作为参数传递给其他函数。例如,假设您想要实现一个对存储在数组中的数据进行操作的 forEach() 函数。然后,您希望 forEach() 函数将数组以及您希望应用于每个元素的函数作为参数。
这是我能想到的最简单的例子,但您可以想象将函数传递给其他函数的其他情况。
【讨论】: