C语言中的函数指针
函数指针是一种指针,能够指向某个函数。
数组名其实是数组首地址的指针,函数名其实也是这个函数地址的指针。系统要调用该函数也是通过这个指针入口进入。(学过汇编后更能理解。)
看例子:
1 void fuc(int a,int b) //一个函数 2 { 3 if(a>b) 4 printf("%d",a); 5 else 6 printf("%d",b); 7 } 8 9 10 int main() 11 { 12 void (*Kernel)(int ,int ); //定义函数指针Kernel 13 Kernel=fuc; //使指针指向该函数 14 Kernel(1,2); //调用该函数 15 return 0; 16 }
当然,还可以进行一些强制转换:
1 void fuc(int a,int b,int c) 2 { 3 if(a>b) 4 printf("%d",a); 5 else 6 printf("%d",b); 7 } 8 9 10 int main() 11 { 12 void (*Kernel)(int ,int ); 13 Kernel=(void(*)(int,int))fuc;//强制转换为两个参数的函数 14 Kernel(1,2); 15 return 0; 16 }