typedef 定义函数指针

发布时间 2023-05-30 17:23:29作者: 虎啸岳林

例如

typedef  void (*iapfun)(void);定义之后是作为一个指针类型

typedef void (*iapfun)(void)定义了一个函数指针类型iapfun,该函数没有参数并且没有返回值。您可以使用此类型定义指向此类型的函数指针,并将其用作函数参数或变量。

typedef void (*iapfun)(void);

void my_function(iapfun func_ptr) {
  // Call function pointed to by func_ptr
  (*func_ptr)();
}

void my_other_function(void) {
  // Do something
}

int main(void) {
  // Define function pointer variable
  iapfun ptr;

  // Assign address of my_other_function to ptr
  ptr = &my_other_function;

  // Call my_function with ptr as argument
  my_function(ptr);

  return 0;
}
在此示例中,my_function是一个函数,它接受一个指向iapfun类型的函数指针作为参数,并调用该指针指向的函数。
my_other_function是一个没有参数和返回值的函数,它可以被指向iapfun类型的函数指针调用。
在main函数中,定义了一个指向iapfun类型的函数指针变量ptr,并将其赋值为my_other_function的地址。
然后,调用my_function函数,并将ptr作为参数传递。my_function将调用my_other_function函数,并执行其中的代码