typedef void (*fun)(void); 定义了一个函数指针,该函数的返回值是void,参数是void
下面主要讨论上述语句的用法
看下面的这个例子。
#include <stdio.h> typedef void (*fun)(void); void a(void) { printf("a "); } void b(void) { printf("b "); } void c() { printf("c "); } int main() { fun table[3]={a,&b,&c}; int i=0; for(i=0;i<3;i++) { fun f =table[i]; (f)();//上面和下面的效果是一样的 (*f)(); } return 0; }
注意函数的名前加不加&的效果是一样的,因为函数名本身就是地址。