例如
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函数,并执行其中的代码