函数 / 指针 / 编程语言 · 2023年 10月 15日 0

函数指针

79 次浏览

函数本身就是一个地址,也算指针,函数指针和函数很像。

函数和函数指针

  • C/C++的思路很简单,函数是指针,函数指针也是指针,二者是可以看成一样的。
    • func()和(*func)()一样。
  • “func;”并不会调用func函数, func()才会调用。
  • C++类静态函数和C语言函数类似,假设类名A,&A::static_func代码函数指针。类成员函数需要指明类对象和类函数指针。
    • 如void func(A *a, void (A::*show)()) { (a->*show)(); }
  • PHP 提供变量函数,和函数指针类似。

支持函数指针的语言

  • Fortran/COBOL/ PL/I /Pascal/C/C++/D/C#

委托

不显式支持指针的编程语言,有的利用委托来模拟函数指针。

类型优化

  • 函数指针声明语句比较长,利用typedef定义或重命名函数指针,可以简化代码。