`
liuzhifu123
  • 浏览: 34622 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

回调函数

 
阅读更多

计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码引用。这一设计允许了底层代码调用在高层定义的子程序

回调的用途十分广泛。例如,假设有一个函数,其功能为读取配置文件并由文件内容设置对应的选项。若这些选项由散列值所标记,则让这个函数接受一个回调会使得程序设计更加灵活:函数的调用者可以使用所希望的散列算法,该算法由一个将选项名转变为散列值的回调函数实现;因此,回调允许函数调用者在运行时调整原始函数的行为。

回调的另一种用途在于处理信号或者类似物。例如一个POSIX程序可能在收到SIGTERM信号时不愿立即终止;为了保证一切运行良好,该程序可以将清理函数注册为SIGTERM信号对应的回调。

回调的形式因程序设计语言的不同而不同。

  • Objective-C中允许利用@selector关键字传递SEL类型的函数名。在实现中,SEL类型被定义为函数名字符串。
  • Apple或是LLVM的C语言扩展中,包含称为的语言特性,可以作为函数的参数传递,作为回调的一种实现。
  • C++允许对象提供其自己的函数调用操作的实现,即重载opertor()。标准模板库和函数指针一样接受这类对象(称为函数对象)作为各种算法的参数。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics