主要用途:转换表、回调函数(具体定义问度娘,先面试用法)

一、回调函数:

问题由来:C语言不支持重载

目    的:使一个具体功能的函数可以作用于不同类型

设计方案:对于一个函数,其中可能只是会有一部分使用指针,那么把这部分抽象出来,再做一个函数,但是需要另主调函数(相对被调函数为主调)引进的参数变为 const void* ,并且从调函数也是引进参数为void const *,然后制定不同类型的从调函数,其中将void*转换成相应类型,然后进行运算!

示    例:

 

 
  
  1. #include<stdio.h> 
  2. //代码看似用法鸡肋,但是就是这个意义 
  3. bool a(void * k,void  * l ){ 
  4.     return *(int*)k>*(int*)l; 
  5. bool b(void  * h,void  * j ){ 
  6.     return *(float*)h- *(float*)j>0; 
  7.  
  8. bool k(void * m,void * n, bool(*p)(void * ,void * ) ) { 
  9.     return p(m,n); 
  10.  
  11. int main(){ 
  12.     int c=1; 
  13.     int b=2; 
  14.     if ( k(&c,&b,a )){ 
  15.         printf("big\n"); 
  16.     } 
  17.     else  
  18.         printf("small\n"); 
  19.     return 0; 

二、转换表

转换表就是函数指针数组,用其代替switch语法达到不同参数判断