C语言完美演绎8-18
/* 范例8-18 */#include stdio.hvoid procreation(int,void (*run)(char*,int)); /* 以函数指针为参数 */void slow_run_shoes(char*,int);void leisure_shoes(char*,int);void spiked_shoes(char*,int);void main(){int procreation_number; /* 生产项目代号1~3 */int size; /* 尺寸 */procreation_number2;size8;switch(procreation_number){case 1: /* 参数行中传入函数slow_run_shoes的地址*/procreation(size,slow_run_shoes);break;case 2: /* 参数行中传入函数leisure_shoes的地址 */procreation(size,leisure_shoes);break;case 3: /* 参数行中传入函数spiked_shoes的地址 */procreation(size,spiked_shoes);break;default:printf(停止生产!!!\n);}getchar();}void procreation(int size,void (*run)(char* material,int size)){char* material; /* 质料名称 */int material_number; /* 质料代号1~3 */material_number3;switch(material_number){case 1:material布;break;case 2:material兽皮;break;case 3:material塑料;}(*run)(material,size); /* 调用函数指针 */}void slow_run_shoes(char* material,int size){printf(以质料为%s、尺寸为%d来生产慢跑鞋\n,material,size);}void leisure_shoes(char* material,int size){printf(以质料为%s、尺寸为%d来生产休闲鞋\n,material,size);}void spiked_shoes(char* material,int size){printf(以质料为%s、尺寸为%d来生产钉鞋\n,material,size);}程序执行结果以质料为塑料、尺寸为8来生产休闲鞋