【发布时间】:2011-03-03 01:10:58
【问题描述】:
我刚刚阅读了关于 K+R 中函数的指针。我了解这些指针是如何工作的,但我没有看到它们的实用程序。这种指针在编程中有什么用?
【问题讨论】:
标签: c function pointers function-pointers
我刚刚阅读了关于 K+R 中函数的指针。我了解这些指针是如何工作的,但我没有看到它们的实用程序。这种指针在编程中有什么用?
【问题讨论】:
标签: c function pointers function-pointers
您可以将函数指针用于各种任务,例如注册工厂、在数据结构上应用算法(例如,使用用户定义的排序函数对列表进行排序)。还有一些其他用途,但基本上你需要它们来实现控制反转:让其他人回调你的代码,你可以通过提供指向函数的指针来做到这一点。
【讨论】:
使用指针的主要原因之一是当我们传递数据时。如果我们使用指针,我们将不会对相同数据进行无意义的复制。
例如,您想将大小为 200 字节的结构传递给函数。更昂贵的是:传递结构的 4(或 8)字节内存地址还是 200 字节的整个副本?
【讨论】:
有很多用途,但根据我的个人经验,它们在操作数组时最有用,因为 C 数组有点麻烦。
【讨论】: