C语言完美演绎8-18

/* 范例:8-18 */

#include <stdio.h>

void 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_number=2;

size=8;

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_number=3;

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来生产休闲鞋

相关推荐
谙弆悕博士28 分钟前
【附C源码】二叉搜索树的C语言实现
c语言·开发语言·数据结构·算法·二叉树·项目实战·数据结构与算法
开发者联盟league2 小时前
在cursor中配置c/c++开发环境
c语言·开发语言·c++
『昊纸』℃2 小时前
C语言简介
c语言·操作系统·编程语言·应用领域·历史发展
刃神太酷啦2 小时前
《网络基础全链路深度解析:从Socket编程到HTTPS与TCP/UDP内核机制》----《Hello Linux!》(25)
linux·运维·c语言·网络·c++·tcp/ip·https
神仙别闹4 小时前
基于C语言实现(控制台)学生信息管理系统
c语言·开发语言
谙弆悕博士4 小时前
【附C语言源码】C语言 栈结构 实现及其扩展操作
c语言·开发语言·数据结构·算法·链表·指针·
你刷碗4 小时前
嵌入式UART printf 数据处理方法
c语言·单片机·嵌入式硬件·arm
redaijufeng5 小时前
C/C++程序从编译到链接的过程
c语言·开发语言·c++
Byte Wizard6 小时前
C语言指针深入浅出6
c语言·开发语言
号码认证服务6 小时前
如何让来电显示公司名代替陌生数字号码?企业号码认证开通指南
服务器·c语言·网络·经验分享·智能手机·云计算·php