【问题标题】:What's the utility of a pointer to function in C? [duplicate]C语言中指向函数的指针有什么用处? [复制]
【发布时间】:2011-03-03 01:10:58
【问题描述】:

可能重复:
What is the point of function pointers?

我刚刚阅读了关于 K+R 中函数的指针。我了解这些指针是如何工作的,但我没有看到它们的实用程序。这种指针在编程中有什么用?

【问题讨论】:

    标签: c function pointers function-pointers


    【解决方案1】:

    您可以将函数指针用于各种任务,例如注册工厂、在数据结构上应用算法(例如,使用用户定义的排序函数对列表进行排序)。还有一些其他用途,但基本上你需要它们来实现控制反转:让其他人回调你的代码,你可以通过提供指向函数的指针来做到这一点。

    【讨论】:

      【解决方案2】:

      使用指针的主要原因之一是当我们传递数据时。如果我们使用指针,我们将不会对相同数据进行无意义的复制。

      例如,您想将大小为 200 字节的结构传递给函数。更昂贵的是:传递结构的 4(或 8)字节内存地址还是 200 字节的整个副本?

      【讨论】:

        【解决方案3】:

        有很多用途,但根据我的个人经验,它们在操作数组时最有用,因为 C 数组有点麻烦。

        【讨论】:

          猜你喜欢
          • 2013-06-27
          • 1970-01-01
          • 1970-01-01
          • 2019-03-19
          • 1970-01-01
          • 2013-06-09
          • 2017-08-26
          • 2014-09-29
          • 1970-01-01
          相关资源
          最近更新 更多