普通函数是一个独立的实体,指向它的指针可以被更改,指向的函数也可以被更改。由于普通函数是独立的实体,所以指向它的指针可以更改指向另外一个函数。

例如,我们可以定义一个指向函数 func1 的指针 ptr,然后将其更改为指向函数 func2。这样,通过 ptr 调用函数时,实际上调用的是 func2

void func1() {
  std::cout << "func1 called" << std::endl;
}

void func2() {
  std::cout << "func2 called" << std::endl;
}

int main() {
  void (*ptr)() = func1;  // 将 ptr 指向 func1
  ptr();  // 调用 func1
  ptr = func2;  // 将 ptr 指向 func2
  ptr();  // 调用 func2
  return 0;
}

在这个例子中,ptr 指针首先指向 func1,然后被更改为指向 func2。当通过 ptr 调用函数时,实际调用的是 ptr 指向的函数。

函数指针的优势:

  • 灵活性和可扩展性: 可以动态地更改函数指针指向的函数,从而实现更加灵活和可扩展的代码。
  • 动态调度: 可以根据条件选择调用不同的函数,实现动态调度机制。
  • 代码复用: 可以通过函数指针传递函数,实现代码复用。

总结:

普通函数指针是指向函数的指针,它可以指向不同的函数,并且可以被更改。函数指针在 C++ 中非常有用,可以实现灵活的代码设计和动态调度机制。


原文地址: http://www.cveoy.top/t/topic/lhxp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录